{"id":2141,"date":"2017-09-24T20:12:01","date_gmt":"2017-09-25T00:12:01","guid":{"rendered":"http:\/\/blog.domb.net\/?p=2141"},"modified":"2017-10-05T12:31:26","modified_gmt":"2017-10-05T16:31:26","slug":"rhv-with-local-storage-domain","status":"publish","type":"post","link":"https:\/\/blog.domb.net\/?p=2141","title":{"rendered":"RHV single node with local storage domain"},"content":{"rendered":"<p>In the last few month I got quite a few requests on deploying RHV as a single hyper-converged non extendable node with local storage (not gluster). This blog post is going to show you how you can install RHVM on baremetal and add the \u00a0same host which hosts the baremetal engine to RHVM. As always, you need a working dns server and the engine host needs to resolve (forward and reverse lookups). for this to work.<\/p>\n<p>Step1. Register your host with subscription manager<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# subscription-manager register\r\n[root@engine1 ~]# subscription-manager attach --pool YourPool\r\n<\/pre>\n<p>Step2. Attach the needed channels<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# subscription-manager repos --disable=*\r\n[root@engine1 ~]# subscription-manager repos --enable=rhel-7-server-rpms \\ \r\n--enable=rhel-7-server-supplementary-rpms \\\r\n--enable=rhel-7-server-rhv-4.1-rpms \\\r\n--enable=rhel-7-server-rhv-4-tools-rpms \\\r\n--enable=jb-eap-7-for-rhel-7-server-rpms \\\r\n--enable=rhel-7-server-rhv-4-mgmt-agent-rpms<\/pre>\n<p>Step3. Update the host and reboot<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# yum -y update &amp;&amp; init 6<\/pre>\n<p>Step4. Disable firewalld as the hypervisor will use iptables when it adds the hosts.<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# systemctl disable firewalld &amp;&amp; systemctl stop firewalld<\/pre>\n<p>Step 5. Install rhvem<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# yum -y install rhevm iptables-services<\/pre>\n<p>Step 6. Set iptables rules. Open \/etc\/sysconfig\/iptables and drop in the following<\/p>\n<pre class=\"lang:default decode:true\"># oVirt default firewall configuration. Automatically generated by vdsm bootstrap script.\r\n*filter\r\n:INPUT ACCEPT [0:0]\r\n:FORWARD ACCEPT [0:0]\r\n:OUTPUT ACCEPT [0:0]\r\n-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT\r\n-A INPUT -p icmp -j ACCEPT\r\n-A INPUT -i lo -j ACCEPT\r\n# vdsm\r\n-A INPUT -p tcp --dport 54321 -j ACCEPT\r\n# ovirt-imageio-daemon\r\n-A INPUT -p tcp --dport 54322 -j ACCEPT\r\n-A INPUT -p tcp --dport 5432 -j ACCEPT\r\n# rpc.statd\r\n-A INPUT -p tcp --dport 111 -j ACCEPT\r\n-A INPUT -p udp --dport 111 -j ACCEPT\r\n# SSH\r\n-A INPUT -p tcp --dport 22 -j ACCEPT\r\n# snmp\r\n-A INPUT -p udp --dport 161 -j ACCEPT\r\n# Cockpit\r\n-A INPUT -p tcp --dport 9090 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT\r\n-A INPUT -p udp -m udp --dport 7410 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 54323 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 54322 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 6100 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 662 -j ACCEPT\r\n-A INPUT -p udp -m udp --dport 662 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 875 -j ACCEPT\r\n-A INPUT -p udp -m udp --dport 875 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 892 -j ACCEPT\r\n-A INPUT -p udp -m udp --dport 892 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 2049  -j ACCEPT\r\n-A INPUT -p udp -m udp --dport 32769 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT\r\n-A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT\r\n-A INPUT -p tcp --dport 16514 -j ACCEPT\r\n-A INPUT -p tcp -m multiport --dports 2223 -j ACCEPT\r\n-A INPUT -p tcp -m multiport --dports 5900:6923 -j ACCEPT\r\n-A INPUT -p tcp -m multiport --dports 49152:49216 -j ACCEPT\r\n-A INPUT -p udp --dport 6081 -j ACCEPT\r\n-A OUTPUT -p udp --dport 6081 -j ACCEPT\r\n-A INPUT -j REJECT --reject-with icmp-host-prohibited\r\n-A FORWARD -m physdev ! --physdev-is-bridged -j REJECT --reject-with icmp-host-prohibited\r\nCOMMIT<\/pre>\n<p>Step 7. Reload iptables<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# systemctl reload iptables<\/pre>\n<p>Step 8. Run Engine Setup (For the firewall choose NO as we already configured it)<\/p>\n<pre class=\"lang:default decode:true\">[root@engine1 ~]# engine-setup<\/pre>\n<p>Step 9. That step is fairly quick once done login as admin<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2153\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.10.39-PM.png\" alt=\"\" width=\"742\" height=\"363\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.10.39-PM.png 742w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.10.39-PM-300x147.png 300w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Step 10. Go to the hosts tab and click new (fill out the fields then hit ok<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2161\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-28-at-1.16.12-PM.png\" alt=\"\" width=\"742\" height=\"717\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-28-at-1.16.12-PM.png 742w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-28-at-1.16.12-PM-300x290.png 300w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Make sure you uncheck the button &#8220;Automatically configure host firewall&#8221;<\/p>\n<p>Step 11. Once your host is activated \u00a0you should see this.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2147\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.42.31-PM.png\" alt=\"\" width=\"1226\" height=\"150\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.42.31-PM.png 1226w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.42.31-PM-300x37.png 300w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.42.31-PM-768x94.png 768w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.42.31-PM-1024x125.png 1024w\" sizes=\"auto, (max-width: 1226px) 100vw, 1226px\" \/><\/p>\n<p>Step 12. Put the host into maintenance mode to define where you local storage will be. (keep in mind that it probably will make a lot of sense to have a separate Raid disk for the data domain) You will also have to add it to fstab<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2148\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.43.00-PM.png\" alt=\"\" width=\"1213\" height=\"315\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.43.00-PM.png 1213w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.43.00-PM-300x78.png 300w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.43.00-PM-768x199.png 768w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.43.00-PM-1024x266.png 1024w\" sizes=\"auto, (max-width: 1213px) 100vw, 1213px\" \/><\/p>\n<p>Step 12. Once the node is in maintenance mode click on Management -&gt; Configure local storage<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2149\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.44.36-PM.png\" alt=\"\" width=\"1270\" height=\"115\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.44.36-PM.png 1270w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.44.36-PM-300x27.png 300w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.44.36-PM-768x70.png 768w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.44.36-PM-1024x93.png 1024w\" sizes=\"auto, (max-width: 1270px) 100vw, 1270px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Step 14. Configure the path for the local storage.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2150\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.14-PM.png\" alt=\"\" width=\"1168\" height=\"285\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.14-PM.png 1168w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.14-PM-300x73.png 300w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.14-PM-768x187.png 768w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.14-PM-1024x250.png 1024w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2151\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.36-PM.png\" alt=\"\" width=\"737\" height=\"522\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.36-PM.png 737w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-7.58.36-PM-300x212.png 300w\" sizes=\"auto, (max-width: 737px) 100vw, 737px\" \/><\/p>\n<p>Step 15. Make sure that the directory you specify above is owned by vdsm.kvm. After you added the path hit ok. It will create the storage domain.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2152\" src=\"http:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.02.27-PM.png\" alt=\"\" width=\"1317\" height=\"161\" srcset=\"https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.02.27-PM.png 1317w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.02.27-PM-300x37.png 300w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.02.27-PM-768x94.png 768w, https:\/\/blog.domb.net\/wp-content\/uploads\/Screen-Shot-2017-09-24-at-8.02.27-PM-1024x125.png 1024w\" sizes=\"auto, (max-width: 1317px) 100vw, 1317px\" \/><\/p>\n<p>Step 16. You are now ready to use RHV.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last few month I got quite a few requests on deploying RHV as a single hyper-converged non extendable node with local storage (not gluster). This blog post is going to show you how you can install RHVM on baremetal and add the \u00a0same host which hosts the baremetal engine to RHVM. As always,&#8230;<\/p>\n","protected":false},"author":2,"featured_media":2157,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[4],"tags":[126,72,127,125],"class_list":["post-2141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-virtualization","tag-redhat-rhv-single-node","tag-rhv","tag-rhv-local-storage","tag-rhv-single-node"],"_links":{"self":[{"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/posts\/2141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.domb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2141"}],"version-history":[{"count":9,"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/posts\/2141\/revisions"}],"predecessor-version":[{"id":2165,"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/posts\/2141\/revisions\/2165"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.domb.net\/index.php?rest_route=\/wp\/v2\/media\/2157"}],"wp:attachment":[{"href":"https:\/\/blog.domb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.domb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.domb.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}