XenServer ja storage repository
Storage Repository on XenServerin varanto virtuaalikoneiden VDI (Virtual Disk Image) -levyille. Virtuaalikoneet (VM) tunnistavat VDI:t fyysisinä levyinä. SR voidaan toteuttaa millä tahansa monista tallennustekniikoista. Esimerkiksi XenServerin paikallinen levy, iSCSI tai FC LUN, NFS, NetApp. SR:t voivat olla jaettuja tai dedikoituja. Tämä dokumentti keskittyy iSCSI LUN-tekniikkaan. Levyjärjestelmän blokki-tallennuslaitteet esitetään XenServer-palvelimelle iSCSI LUN-tyyppisenä, ja näistä luodaan Storage Repository XenServer voi luoda useita virtuaalikoneita yhdelle SR:lle. Virtuaalikoneiden määrä riippuu IOPS (Input Output Per Second) tarpeesta ja työkuormasta. Kun useampi virtuaalikone jakaa saman SR:n, ne jakavat myös SR:n I/O-jonon. Tämä tulee ottaa huomioon ympäristöä rakentaessa.
Xen Multipath
Oletuksena Xen DM-Multipathing käyttää Round-robin algoritmia. Tässä käytetään FreeNASin asetuksia. Koska käytämme bogus FQDN:a, lisätään jokaiselle xenserverille /etc/hosts -tiedostoon tiedot palvelimista. Jokaisella palvelimella on neljä verkkoliitäntää, joista kaksi on dedikoitu SAN-verkolle, yksi verkkoliikenteelle ja yksi hallintaverkolle. SAN-verkot ovat 172.29.2.0 ja 172.29.3.0. Hallintaverkko on 172.29.159.0 ja virtuaalikoneiden verkkoliikenteelle on asetettu 172.29.160.0-verkko.
# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.29.159.131 xenserver1 xenserver1.foo.bar 172.29.159.132 xenserver2 xenserver2.foo.bar 172.29.159.133 xenserver3 xenserver3.foo.bar
XenServerin iSCSI Storage repositories käyttää Open-iSCSI initiator –ohjelmistoa kommunikointiin levyjärjestelmän kanssa. iSCSI repositoryt käyttävät luontivaiheessa kaiken LUNin tilan, eikä tätä voida kasvattaa jälkikäteen. Jotta XenServer pääsee käsiksi iSCSI target/LUNeihin, XenServer tarvitsee iSCSI initiator IQN-tunnuksen. Tämä satunnainen iSCSI IQN-tunnus luodaan XenServerin asennusvaiheessa ja tämän vaihtaminen vastaamaan ympäristön nimeämiskäytäntöä on suositeltavaa. Muutetaan xenserver1-3 palvelimien iqn-osoitteet.
# xe host-list uuid ( RO) : 42ccc4d8-633b-48fe-b379-f833335b70ec name-label ( RW): xenserver1 name-description ( RW): Default install # xe host-param-set uuid=42ccc4d8-633b-48fe-b379-f833335b70ec other-config:iscsi_iqn=iqn.2017-07.bar.foo:xenserver1
Multipath voidaan toteuttaa kahdella eri tavalla. Multipath kahdella aliverkolla tai multipath yhdellä aliverkolla. Kahden aliverkon toteutuksessa iSCSI targetit (Levyjärjestelmässä Control Portit) ovat erillisissä aliverkoissa. Kun halutaan HA (High Availability) -ratkaisu, tämä tapa on suositus. Yhden aliverkon toteutuksessa Control Portit ovat samassa aliverkossa ja polkujen varmistamiseen käytetään NIC bondingia.
1. Listataan verkkoliitännät. Palvelin verkkoliitännät eth2 ja eth4 ovat liitetty SAN-kytkimeen, joten haetaan näiden uuid:t.
# xe host-list uuid ( RO) : d0c69d5a-27cd-48fb-ba35-574416b9b0a7 name-label ( RW): xenserver1 name-description ( RW): Default install # xe pif-list host-uuid=d0c69d5a-27cd-48fb-ba35-574416b9b0a7 |egrep -B 1 '(eth2|eth4)' uuid ( RO) : 48683c8f-f150-2147-2658-49c1c3dab013 device ( RO): eth4 -- uuid ( RO) : 43469469-f621-48ad-d48f-e0264a4a2278 device ( RO): eth2
2. Asetetaan verkkokorteille IP-osoiteet, estetään tahallinen tiputus ja nimetään ne.
# xe pif-reconfigure-ip mode=static ip=172.29.2.131 netmask=255.255.255.0 \ gateway= uuid=43469469-f621-48ad-d48f-e0264a4a2278 # xe pif-param-set disallow-unplug=true uuid=43469469-f621-48ad-d48f-e0264a4a2278 # xe pif-param-set other-config:management_purpose=storage-1 uuid=43469469-f621-48ad-d48f-e0264a4a2278 # xe pif-reconfigure-ip mode=static ip=172.29.3.131 netmask=255.255.255.0 \ gateway= uuid=48683c8f-f150-2147-2658-49c1c3dab013 # xe pif-param-set disallow-unplug=true uuid=48683c8f-f150-2147-2658-49c1c3dab013 # xe pif-param-set other-config:management_purpose=storage-2 uuid=48683c8f-f150-2147-2658-49c1c3dab013
3. Estetään verkon automaattinen määritys uusille virtuaalikoneille.
# xe network-list |egrep -B 1 '(eth2|eth4)' uuid ( RO) : 300f555e-332a-49d8-c9d8-7317730e2a16 name-label ( RW): Pool-wide network associated with eth4 -- uuid ( RO) : cbfd110a-ba0a-0865-c225-f27f1383d6f3 name-label ( RW): Pool-wide network associated with eth2 # xe network-param-set other-config:automatic=false uuid=300f555e-332a-49d8-c9d8-7317730e2a16 # xe network-param-set other-config:automatic=false uuid=cbfd110a-ba0a-0865-c225-f27f1383d6f3
4. Otetaan multipath käyttöön ja suoritetaan samat toimenpiteet (Vaiheet 1-4) myös xenserver2- ja xenserver3 -palvelimille. uuid=host-uuid.
# xe host-param-set other-config:multipathing=true uuid=d0c69d5a-27cd-48fb-ba35-574416b9b0a7 # xe host-param-set other-config:multipathhandle=dmp uuid=d0c69d5a-27cd-48fb-ba35-574416b9b0a7
5. Xenserver1-palvelimalla storage repositoryn liittämistä varten tarvitaan SCSIid, joka saadaan sr-probe -komennon avulla.
xenserver1# xe sr-probe type=lvmoiscsi \ device-config:target=172.29.2.10 device-config:targetIQN=iqn.2017-07.bar.foo:xen Error code: SR_BACKEND_FAILURE_107 Error parameters: , The SCSIid parameter is missing or incorrect, <?xml version="1.0" ?> <iscsi-target> <LUN> <vendor>FreeNAS</vendor> <LUNid>0</LUNid> <size>858993459200</size> <SCSIid>36589cfc0000007151aa56d2a04af84db</SCSIid> </LUN> </iscsi-target>
6. Storage repositoryn luomiseen tarvitaan hostin uuid, levypalvelimen IP-osoite, target IQN ja SCSIid joka saatii aiemmin sr-probe -kommenolla. Tämä komento suoritetaan vain xenserver1-palvelimella.
xenserver1# xe sr-create host-uuid=d0c69d5a-27cd-48fb-ba35-574416b9b0a7 content-type=user \ name-label=iSCSI_SR shared=true \ device-config:target=172.29.2.10 device-config:targetIQN=iqn.2017-07.bar.foo:xen \ device-config:SCSIid=36589cfc0000007151aa56d2a04af84db \ type=lvmoiscsi
7. Skannataan toinen polku esiin kaikilla palvelimilla ja kirjaudutaan.
# iscsiadm -m discovery --type sendtargets --portal 172.29.2.10 172.29.2.10:3260,1 iqn.2017-07.bar.foo:xen 172.29.3.10:3260,2 iqn.2017-07.bar.foo:xen # iscsiadm -m node -T iqn.2017-07.bar.foo:xen --login
Multipath -ll -komennolla näemme, että kumpikin polku on käytössä.
# multipath -ll 36589cfc0000007151aa56d2a04af84db dm-1 FreeNAS ,iSCSI Disk size=900G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 11:0:0:1 sdb 8:16 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 12:0:0:1 sdc 8:32 active ready running