{"id":70,"date":"2016-05-25T12:14:58","date_gmt":"2016-05-25T16:14:58","guid":{"rendered":"http:\/\/home.battleonline.org\/?p=70"},"modified":"2021-05-10T13:40:38","modified_gmt":"2021-05-10T17:40:38","slug":"adventures-in-scaleio-and-openstack-part-1-base-os-setup","status":"publish","type":"post","link":"https:\/\/home.battleonline.org\/?p=70","title":{"rendered":"Adventures in ScaleIO and OpenStack &#8211; Part 1 &#8211; Base OS setup"},"content":{"rendered":"<p>So, this will be a multi-part series documenting my adventures in deploying OpenStack Mitaka on Ubuntu 14.04 leveraging EMC&#8217;s ScaleIO storage (along with some iSCSI sitting on ZFS). &nbsp;This post is meant to document how I&#8217;ve set up my environment, and any issues i&#8217;ve encountered.<\/p>\n<p><strong>The environment:<\/strong><\/p>\n<p>I have 6 total servers in the environment all connected via Mellanox 20Gb\/s Infiniband and 1Gb\/s IP.<\/p>\n<ul>\n<li style=\"padding-left: 30px;\">Server #1 &#8211; this is an older Dell Optiplex with 4 CPU cores and 16GB of RAM. &nbsp;I currently have Docker installed running a handful of containers supporting this site, as well as some internal apps. &nbsp;Additionally, this server is set up as the ScaleIO gateway.<\/li>\n<li style=\"padding-left: 30px;\">Server #2 &#8211; this is a 2U Supermicro box with 12 CPU cores and 64GB of RAM. &nbsp;Currently this server is tasked to run the bulk of the supporting OpenStack services and databases. &nbsp;It also contains ~10TB of useable capacity on ZFS on Linux that is exported via NFS, and eventually via iSCSI.<\/li>\n<li style=\"padding-left: 30px;\">Servers #3 through 6 &#8211; these are my Nova compute nodes, as well as my ScaleIO SDS nodes. &nbsp;Each contains 8 CPU cores and 32GB of RAM.<\/li>\n<\/ul>\n<p>Each of these servers contains an identical base build at this point.<\/p>\n<p><strong>The Setup:<\/strong><\/p>\n<p>When installing Ubuntu, the only server role i&#8217;ve given them is OpenSSH server. &nbsp;Once the base install is complete, I&#8217;ve installed the opensm package in order to bring up the Subnet Manager in the IB network, and I&#8217;ve loaded the appropriate modules for my environment:<\/p>\n<pre><code>$ sudo apt-get install opensm<\/code><\/pre>\n<p>Once the OpenSM package is installed, I load the appropriate modules:<\/p>\n<pre><code>$ sudo modprobe mlx4_ib\n$ sudo modprobe ib_umad\n$ sudo modprobe ib_ipoib<\/code><\/pre>\n<p>I also add these modules to the existing \/etc\/modules file so it looks like this:<\/p>\n<pre><code>$ cat \/etc\/modules\n# \/etc\/modules: kernel modules to load at boot time.\n#\n# This file contains the names of kernel modules that should be loaded\n# at boot time, one per line. Lines beginning with \"#\" are ignored.\n# Parameters can be specified after the module name.\n\nlp\nrtc\nmlx4_ib\nib_umad\nib_ipoib<\/code><\/pre>\n<p>Now that I have my modules loaded, I can set up my network interfaces for both my OpenStack provider network, and my IB storage network. &nbsp;I edit the \/etc\/network\/interfaces file to this:<\/p>\n<pre><code># This file describes the network interfaces available on your system\n# and how to activate them. For more information, see interfaces(5).\n# The loopback network interface\nauto lo\niface lo inet loopback\n\n# The Management network interface\nauto eth0\niface eth0 inet static\n     address 10.0.0.10\/24\n     gateway 10.0.0.1\n     dns-nameservers 10.0.0.2\n     dns-search battledome.lcl\n\n# The Provider network Interface\nauto eth1\niface eth1 inet manual\n     up ip link set dev $IFACE up\n     down ip link set dev $IFACE down\n\n# The Infiniband Network\n     auto ib0\n     iface ib0 inet static\n     address 10.1.1.10\/24\n     post-up echo connected &gt; \/sys\/class\/net\/ib0\/mode\n     post-up ifconfig ib0 mtu 65520<\/code><\/pre>\n<p class=\"p1\">Once the \/etc\/network\/interfaces file is ready, simply bring up the eth1 and ib0 interfaces to ensure they&#8217;re operational.<\/p>\n<pre><code>$ sudo ifup eth1 &amp;&amp; sudo ifup ib0<\/code><\/pre>\n<p class=\"p1\">Next we want to update our packages using apt-get. &nbsp;DO NOT upgrade the Kernel just yet.<\/p>\n<pre><code>$ sudo apt-get update\n$sudo apt-get upgrade<\/code><\/pre>\n<p class=\"p1\">Now, we want to update the Kernel to the latest SUPPORTED Kernel for ScaleIO. &nbsp;as of this post, the latest SUPPORTED for Ubuntu 14.04 is 4.2.0-30. &nbsp;If you blindly do a apt-get dist-upgrade, you will get a newer kernel than what is supported. &nbsp;This is BAD, the ScaleIO Kernel module for the SDC&#8217;s will not load. &nbsp;To get around this, we will install the 4.2.0-30 kernel, then ensure that apt-get HOLDS at that level.<\/p>\n<pre><code>\n<pre wp-pre-tag-6=\"\"><\/pre>\n<p>nbsp;sudo apt-get install linux-headers-4.2.0-30-generic linux-headers-4.2.0-30 linux-image-4.2.0-30-generic linux-image-extra-4.2.0-30-generic <\/code><\/p>\n<p class=\"p1\">Once the kernel install completes, we will set apt-get to HOLD at this level<\/p>\n<pre><code>$ sudo apt-mark hold install linux-headers-4.2.0-30-generic linux-headers-4.2.0-30 linux-image-4.2.0-30-generic linux-image-extra-4.2.0-30-generic <\/code><\/pre>\n<p class=\"p1\"><strong>REBOOT<\/strong><\/p>\n<p class=\"p1\"><em>&nbsp;**NOTE: &nbsp;There doesn&#8217;t appear to be a similar way to hold packages with the apt command. &nbsp;I know there&#8217;s a way to hold packages with dpkg, but I havent tested this with apt.<\/em><\/p>\n<p class=\"p1\"><strong>Installing&nbsp;components necessary for ScaleIO<\/strong><\/p>\n<p class=\"p1\">There&#8217;s not a lot in terms of prerequisites fro ScaleIO on Ubuntu. &nbsp;we need to install Java 8, numactl, libaio, and bash-completion.<\/p>\n<pre><code>$ sudo add-apt-repository ppa:webupd8team\/java\n$ sudo apt-get update\n$ sudo apt-get install oracle-java8-installer\n$ sudo apt-get install numactl libaio1 bash-comletion <\/code><\/pre>\n<p class=\"p1\">Do this on each MDM, SDS, and SDC node you plan to use in your environment.<\/p>\n<p class=\"p1\">Additionally, it appears that you need to enable the root account and enable it to login via SSH for the Gateway installer to work. &nbsp;I don&#8217;t believe this is a requirement for a manual install.<\/p>\n<pre><code>$ sudo passwd root<\/code><\/pre>\n<p class=\"p1\">Allow root to login via ssh by modifying the \/etc\/ssh\/sshd_config file with the following parameter:<\/p>\n<pre><code>PermitRootLogin yes<\/code><\/pre>\n<p class=\"p1\">Restart the ssh service.<\/p>\n<pre><code>$ sudo service ssh restart<\/code><\/pre>\n<p class=\"p1\">Repeat this fro each nod you will be using as an MDM, SDS, or SDC in your environment.<\/p>\n<p class=\"p1\">You are now ready to begin deploying ScaleIO. &nbsp;I will cover that in <a href=\"https:\/\/home.battleonline.org\/2016\/05\/25\/adventures-in-op\u2026aleio-deployment\/\">Part 2<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, this will be a multi-part series documenting my adventures in deploying OpenStack Mitaka on Ubuntu 14.04 leveraging EMC&#8217;s ScaleIO storage (along with some iSCSI sitting on ZFS). &nbsp;This post is meant to document how I&#8217;ve set up my environment, and any issues i&#8217;ve encountered. The environment: I have 6 total servers in the environment &hellip; <a href=\"https:\/\/home.battleonline.org\/?p=70\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Adventures in ScaleIO and OpenStack &#8211; Part 1 &#8211; Base OS setup<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":75,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[7,9],"tags":[],"class_list":["post-70","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-legacy","category-hci"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/home.battleonline.org\/wp-content\/uploads\/2016\/05\/scaleio_logo.jpg?fit=400%2C400&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6NcXv-18","jetpack-related-posts":[{"id":78,"url":"https:\/\/home.battleonline.org\/?p=78","url_meta":{"origin":70,"position":0},"title":"Adventures in OpenStack and ScaleIO &#8211; Part 2 &#8211; ScaleIO Deployment","author":"ebattle","date":"May 25, 2016","format":false,"excerpt":"In my previous post, we set up our base OS images. \u00a0In this post, we will walk through what it takes to get a ScaleIO SDS array up and running on Ubuntu 14.04. First things first, lets make sure we have a supported version of the kernel on our Ubuntu\u2026","rel":"","context":"In &quot;DellEMC - Legacy&quot;","block_context":{"text":"DellEMC - Legacy","link":"https:\/\/home.battleonline.org\/?cat=7"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/home.battleonline.org\/wp-content\/uploads\/2016\/05\/scaleio_logo.jpg?fit=400%2C400&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":50,"url":"https:\/\/home.battleonline.org\/?p=50","url_meta":{"origin":70,"position":1},"title":"LACP Bonding on Ubuntu 14.04 and 16.04","author":"ebattle","date":"May 16, 2016","format":false,"excerpt":"I've recently been acquiring servers and building up an Openstack on ScaleIO lab. \u00a0During this exercise I've been using bonded ethernet and IBoIP interfaces in order to trunk the multiple VLANs I need. On Ubuntu 16.04, the \"ifenslave\" and \"vlan\" modules are included in the base server install. \u00a0I'm not\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/home.battleonline.org\/?cat=8"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":338,"url":"https:\/\/home.battleonline.org\/?p=338","url_meta":{"origin":70,"position":2},"title":"Long Overdue Update","author":"ebattle","date":"May 10, 2021","format":false,"excerpt":"I have really neglected my blogging and would like to start putting some more posts up. We will see if my work\/life balance will allow for that. As for the current post, I just wanted to provide a quick update. Since my last post, nearly 5 years ago, much has\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/home.battleonline.org\/?cat=8"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/home.battleonline.org\/wp-content\/uploads\/2021\/05\/nutanix.jpeg?fit=400%2C400&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/posts\/70","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=70"}],"version-history":[{"count":0,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/posts\/70\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=\/wp\/v2\/media\/75"}],"wp:attachment":[{"href":"https:\/\/home.battleonline.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/home.battleonline.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}