{"id":4453,"date":"2018-06-11T21:26:55","date_gmt":"2018-06-11T21:26:55","guid":{"rendered":"https:\/\/geekdecoder.com\/?p=4453"},"modified":"2018-06-11T21:26:55","modified_gmt":"2018-06-11T21:26:55","slug":"installation-for-proxmox","status":"publish","type":"post","link":"https:\/\/www.qbytes.cloud\/index.php\/2018\/06\/11\/installation-for-proxmox\/","title":{"rendered":"Installation for Proxmox"},"content":{"rendered":"<p>Install 3 nodes. Each node specs:<br \/>\n<a href=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/proxmox_settings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4465\" src=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/proxmox_settings.png\" alt=\"\" width=\"883\" height=\"842\" srcset=\"https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/proxmox_settings.png 883w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/proxmox_settings-300x286.png 300w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/proxmox_settings-768x732.png 768w\" sizes=\"auto, (max-width: 883px) 100vw, 883px\" \/><\/a><\/p>\n<p>Since our host acts as a router we have to make sure it\u2019s kernel has all IP packet forwarding features activated. Take a look at \u2018\/etc\/sysctl.conf\u2019 and make sure that the following two lines aren\u2019t commented out:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n\nnet.ipv4.ip_forward=1\nnet.ipv6.conf.all.forwarding=1\n\n<\/pre>\n<p>Lastly make sure your host won\u2019t send ICPM \u201credirect\u201d messages to guests, telling them to find the gateway by themselves. This won\u2019t work with our particular network setup. Add the following to \u2018\/etc\/sysctl.conf\u2019:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n\nnet.ipv4.conf.all.send_redirects=0\n\n<\/pre>\n<p>Reboot<\/p>\n<p>Networking for nodes Incomplete &#8211; this is not currently working):<br \/>\nSet up 3 NIC&#8217;s<\/p>\n<p>ens192 &#8211; primary for Public IP. This is the public IP for the installation.<br \/>\nens224 &#8211; proxmox VE Cluster Network<br \/>\nens256 &#8211; Ceph Install<\/p>\n<p>Once installed, edit \/etc\/network\/interfaces on all 3 nodes. Change the IP addresses accordingly. Remeber to backup the files before editing.<br \/>\nExample \/etc\/network\/interfaces for px1 node 1.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nauto lo\niface lo inet loopback\n\nauto ens192\niface ens192 inet static\n        address  216.55.xxx.xxx\n        netmask  255.255.255.0\n        gateway  216.xx.xxx.1\n        post-up echo 1 &amp;gt; \/proc\/sys\/net\/ipv4\/conf\/ens192\/proxy_arp\n#Public IP\n\nauto vmbr0\niface vmbr0 inet static\n        address  192.168.1.151\n        netmask  255.255.255.0\n        bridge_ports none\n        bridge_stp off\n        bridge_fd 0\n\tpost-up echo 1 &amp;gt; \/proc\/sys\/net\/ipv4\/ip_forward\n        post-up iptables -t nat -A POSTROUTING -s &#039;192.168.1.0\/24&#039; -o ens192 -j MASQUERADE\n        post-down iptables -t nat -D POSTROUTING -s &#039;192.168.1.0\/24&#039; -o ens192 -j MASQUERADE\n<\/pre>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n#Private Network for VM Creation\n\nauto ens224\niface ens224 inet static\n        address  10.0.0.151\n        netmask  255.255.255.0\n#Proxmox VE Cluster Network\n\nauto ens256\niface ens256 inet static\n  address  10.10.10.151\n  netmask  255.255.255.0\n#ceph network\n\n<\/pre>\n<p>Setting up the cluster<\/p>\n<p>Hosts file edits. Backup hosts file and change to this on all nodes. This is not the hostname but an identifier.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"># corosync network hosts\n10.0.0.151 one-corosync.geekdecoder.com one-corosync\n10.0.0.152 two-corosync.geekdecoder.com two-corosync\n10.0.0.153 three-corosync.geekdecoder.com three-corosync\n<\/pre>\n<p>Adding Nodes With Separated Cluster Network<br \/>\nWhen adding a node to a cluster with a separated cluster network you need to use the ringX_addr parameters to set the nodes address on those networks:<\/p>\n<p>pvecm add IP-ADDRESS-CLUSTER -ring0_addr IP-ADDRESS-RING0<br \/>\nIf you want to use the Redundant Ring Protocol you will also want to pass the ring1_addr parameter.<\/p>\n<p>Creating the cluster after network and host file setup. Log into node 1.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">node1# pvecm create clustername -bindnet0_addr 10.0.0.151 -ring0_addr one-corosync\n<\/pre>\n<p>Output<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">Corosync Cluster Engine Authentication key generator.\nGathering 1024 bits for key from \/dev\/urandom.\nWriting corosync key to \/etc\/corosync\/authkey.\nWriting corosync config to \/etc\/pve\/corosync.conf\nRestart corosync and cluster filesystem\n<\/pre>\n<p>Reboot<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"># reboot\n<\/pre>\n<p>Adding nodes.<\/p>\n<p>From man corosync.conf<\/p>\n<p>ringnumber &#8211; This specifies the ring number for the interface. When using the redundant ring protocol, each interface should specify separate ring numbers to uniquely identify to the membership protocol which interface to use for which redundant ring. The ringnumber must start at 0.<\/p>\n<p>Adding nodes. Login to a node you want to add, node2, node3, node4, etc. In this example, login to node 2 (10.0.0.152)and the IP for node1 is 10.0.0.151.<br \/>\nRun the following where&#8221;<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">node2# pvecm add 10.0.0.151 -ring0_addr 10.0.0.152\n\n<\/pre>\n<p>Status<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> pvecm status\nQuorum information\n------------------\nDate:             Tue Jun 12 15:17:10 2018\nQuorum provider:  corosync_votequorum\nNodes:            2\nNode ID:          0x00000001\nRing ID:          1\/12\nQuorate:          Yes\n\nVotequorum information\n----------------------\nExpected votes:   2\nHighest expected: 2\nTotal votes:      2\nQuorum:           2\nFlags:            Quorate\n\nMembership information\n----------------------\n    Nodeid      Votes Name\n0x00000001          1 10.0.0.151 (local)\n0x00000002          1 10.0.0.152\n\n<\/pre>\n<p>Nodes<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> pvecm nodes\n\nMembership information\n----------------------\n    Nodeid      Votes Name\n         1          1 one-corosync (local)\n         2          1 10.0.0.152\n         3          1 10.0.0.153\n\n<\/pre>\n<p>log into the node 1 web GUI.<br \/>\n<a href=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/webui.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4462\" src=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/webui.png\" alt=\"\" width=\"977\" height=\"534\" srcset=\"https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/webui.png 977w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/webui-300x164.png 300w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/webui-768x420.png 768w\" sizes=\"auto, (max-width: 977px) 100vw, 977px\" \/><\/a><\/p>\n<p>Installation of Ceph packages<\/p>\n<p>Login to each node and run:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">~# pveceph install --version luminous\nupdate available package list\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\ngdisk is already the newest version (1.0.1-1).\nThe following additional packages will be installed:\n  binutils ceph-base ceph-mgr ceph-mon ceph-osd cryptsetup-bin libcephfs2 libcurl3 libgoogle-perftools4 libjs-jquery\n  libjs-sphinxdoc libjs-underscore libleveldb1v5 liblttng-ust-ctl2 liblttng-ust0 libparted2 librados2 libradosstriper1\n  librbd1 librgw2 libtcmalloc-minimal4 libunwind8 parted python-bs4 python-cephfs python-cffi-backend python-cherrypy3\n  python-click python-colorama python-cryptography python-dnspython python-enum34 python-flask python-formencode\n  python-idna python-ipaddress python-itsdangerous python-jinja2 python-logutils python-mako python-markupsafe\n  python-openssl python-paste python-pastedeploy python-pastedeploy-tpl python-pecan python-prettytable python-pyasn1\n  python-rados python-rbd python-repoze.lru python-rgw python-routes python-setuptools python-simplegeneric\n  python-singledispatch python-tempita python-waitress python-webob python-webtest python-werkzeug\nSuggested packages:\n  binutils-doc ceph-mds libparted-dev libparted-i18n parted-doc python-cryptography-doc python-cryptography-vectors\n  python-enum34-doc python-flask-doc python-egenix-mxdatetime python-jinja2-doc python-beaker python-mako-doc\n  python-openssl-doc python-openssl-dbg httpd-wsgi libapache2-mod-python libapache2-mod-scgi python-pastescript\n  python-pastewebkit doc-base python-setuptools-doc python-waitress-doc python-webob-doc python-webtest-doc ipython\n  python-genshi python-lxml python-greenlet python-redis python-pylibmc | python-memcache python-werkzeug-doc\nRecommended packages:\n  ceph-mds ntp | time-daemon javascript-common python-lxml | python-html5lib python-blinker python-simplejson\n  libjs-mochikit python-openid python-scgi python-pastescript python-lxml python-pyquery python-pyinotify\nThe following NEW packages will be installed:\n  binutils ceph ceph-base ceph-mgr ceph-mon ceph-osd cryptsetup-bin libcephfs2 libcurl3 libgoogle-perftools4 libjs-jquery\n  libjs-sphinxdoc libjs-underscore libleveldb1v5 liblttng-ust-ctl2 liblttng-ust0 libparted2 libtcmalloc-minimal4\n  libunwind8 parted python-bs4 python-cffi-backend python-cherrypy3 python-click python-colorama python-cryptography\n  python-dnspython python-enum34 python-flask python-formencode python-idna python-ipaddress python-itsdangerous\n  python-jinja2 python-logutils python-mako python-markupsafe python-openssl python-paste python-pastedeploy\n  python-pastedeploy-tpl python-pecan python-prettytable python-pyasn1 python-repoze.lru python-rgw python-routes\n  python-setuptools python-simplegeneric python-singledispatch python-tempita python-waitress python-webob python-webtest\n  python-werkzeug\nThe following packages will be upgraded:\n  ceph-common librados2 libradosstriper1 librbd1 librgw2 python-cephfs python-rados python-rbd\n8 upgraded, 55 newly installed, 0 to remove and 27 not upgraded.\nNeed to get 54.5 MB of archives.\nAfter this operation, 179 MB of additional disk space will be used.\n\n<\/pre>\n<p>Create initial Ceph configuration<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">node1# pveceph init --network 10.10.10.0\/24\n<\/pre>\n<p>After that you can create the first Ceph monitor service using:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">node1# pveceph createmon\n<\/pre>\n<p>Go to video or site to create other items.<br \/>\n<iframe loading=\"lazy\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/jFFLINtNnXs?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>Keyring<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">cd \/etc\/pve\/priv\nmkdir ceph\nroot@px1:\/etc\/pve\/priv# cp \/etc\/ceph\/ceph.client.admin.keyring ceph\/ceph-vm.keyring\nroot@px1:\/etc\/pve\/priv# cp \/etc\/ceph\/ceph.client.admin.keyring ceph\/ceph-lxc.keyring\n<\/pre>\n<p>Now visable.<\/p>\n<p>Do some benchmark testing.<br \/>\nwrite performance<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">rados -p test3 bench 10 write --no-cleanup\n<\/pre>\n<p>read<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">rados -p test3 bench 10 seq\n\n<\/pre>\n<p>Add virtualization<\/p>\n<p>Login to ESXi ssh.<\/p>\n<p>go to your node vm directory with the .vmx file. In this case<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\/vmfs\/volumes\/5a70c7aa-560fd204-49b1-6805ca0a3085\/px3\n<\/pre>\n<p>Add the following to the bottom of the file<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> # vhv.enable = &quot;TRUE&quot;\n<\/pre>\n<p>Restart the VM.<\/p>\n<p>Log into the node 1 and run the following<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">#egrep -c &#039;(vmx|svm)&#039; \/proc\/cpuinfo\n1\n\n<\/pre>\n<p>1= ok<br \/>\n0 = no change<\/p>\n<p><a href=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4478\" src=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx1.png\" alt=\"\" width=\"686\" height=\"210\" srcset=\"https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx1.png 686w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx1-300x92.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><\/a><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"eOaNa92qL6\"><p><a href=\"https:\/\/imanudin.net\/2015\/03\/04\/how-to-install-proxmox-nested-on-vmware-esxi-full-support-openvz-kvm\/\">How To Install Proxmox Nested on VMware ESXi (Full Support OpenVZ &#038; KVM)<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/imanudin.net\/2015\/03\/04\/how-to-install-proxmox-nested-on-vmware-esxi-full-support-openvz-kvm\/embed\/#?secret=eOaNa92qL6\" data-secret=\"eOaNa92qL6\" width=\"600\" height=\"338\" title=\"&#8220;How To Install Proxmox Nested on VMware ESXi (Full Support OpenVZ &#038; KVM)&#8221; &#8212; Ahmad Imanudin\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>Another option is to disable KVM virtualization on the VM<\/p>\n<p><a href=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4481\" src=\"https:\/\/qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx2.png\" alt=\"\" width=\"481\" height=\"350\" srcset=\"https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx2.png 481w, https:\/\/www.qbytes.cloud\/wp-content\/uploads\/2018\/06\/vmx2-300x218.png 300w\" sizes=\"auto, (max-width: 481px) 100vw, 481px\" \/><\/a><\/p>\n<p>upload iso to local storage<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">scp to \/var\/lib\/vz\/template\/iso\n<\/pre>\n<p>HA video &#8211; https:\/\/www.youtube.com\/watch?v=JfLJO-IF0Eo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Install 3 nodes. Each node specs: Since our host acts as a router we have to make sure it\u2019s kernel has all IP packet forwarding features activated. Take a look at \u2018\/etc\/sysctl.conf\u2019 and make sure that the following two lines aren\u2019t commented out: net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 Lastly make sure your host won\u2019t send ICPM \u201credirect\u201d messages &#8230; <a title=\"Installation for Proxmox\" class=\"read-more\" href=\"https:\/\/www.qbytes.cloud\/index.php\/2018\/06\/11\/installation-for-proxmox\/\" aria-label=\"Read more about Installation for Proxmox\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[90],"tags":[],"class_list":["post-4453","post","type-post","status-publish","format-standard","hentry","category-proxmox"],"_links":{"self":[{"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/posts\/4453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/comments?post=4453"}],"version-history":[{"count":0,"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/posts\/4453\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/media?parent=4453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/categories?post=4453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qbytes.cloud\/index.php\/wp-json\/wp\/v2\/tags?post=4453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}