iOmega StorCenter ix2-200 NFS Share csatolása routeren keresztül Citrix XenServer 6.0 kiszolgálóra
A feladat nem tűnik bonyolultnak, viszont abban a pillanatban, hogy a két eszköz közé egy routert teszünk, máris nem olyan barátságos, hiszen a változó RPC (rpc.mountd, rpc.statd, rpc.rquotad) portokat fixálni kell. Valamint az sem elhanyagolható tényező, hogy a megosztásunk a lehetőségekhez mérten a legbiztonságosabb legyen. Tehát a cikk erre is megpróbál majd kitérni.
NFS Share létrehozása az iOmega StorCenter ix2-200 eszközön:
- Lépjünk be a webfelületre (http://<IPofNAS>)
- Kapcsoljuk be az NFS megosztását (Network -> Protocols ->NFS = ON)
- Hozzunk létre egy új megosztást (Storage -> Shares ->Add a Share)
- Mivel még nem kapcsoltuk be a Security-t emiatt jelenleg az összes megosztás elérhető NFS protokoll segítségével
- Az NFS nagyon sok portot használ, amelyeket random választ ki a port mapper. Ez nekünk nem jó, mert egy cím fordított (NAT) hálózaton keresztül szeretnénk elérhetővé tenni az NFS megosztást. Emiatt kell a portmaper-t átkonfigurálni. Ehhez mindenképp SSH hozzáférésre lesz szükségünk, amelyet már leírtam, hogyan szerezhetünk meg. Ha beléptünk, akkor az 'rpcinfo -p' parancs segítségével állapíthatjuk meg, hogy jelenleg a mely portokon hallgatnak az RPC szolgáltatások, amelyeket át kell állítani.Az átállításhoz az következő parancsok lesznek segítségünkre:
- rpc.mountd -p <port>
- rpc.rquotad -p <port>
- rpc.statd -p <port>Ezzel csak annyi a gond, hogy a következő újraindításig jegyzi meg a beállítást, tehát nem valami életképes a megoldás. Sajnálatos módon, a hivatalos konfigurációs állomány a /etc/sysconfig/nfs nem létezik és ha kézzel létrehozzuk, sem használja a rendszer így másik megoldáshoz kell folyamodnunk. Gondoltam, hogy akkor meglovagolom a rendszerindítást. Először is ezért le kell menteni a parancsokat egy fájlba:
cat <<EOF > /etc/rc.nfs
rpc.mountd -p <port>
rpc.rquotad -p <port>
rpc.statd -p <port>
EOF - Ez az ötletem sem nyert, mert hiába vannak meg a /etc/rc.local és /etc/rc<x>.d/ könyvtárak, akkor sem futott le a rendszerindítás után a parancsom... Csak két megoldást sikerült kitalálnom, amelyek közül az egyik rosszabb mint a másik, de ez van. Nem valami szép megoldás, de legalább működnek. Az első, hogy eltávolítjuk a merevlemezeket és egy linux alapú rendszerre felcsatoljuk, ugyanis az md0 kötet rejti a /mnt/apps könyvtárat, amely tartalmazza a rendszerpartíciót, ahol módosítani kellene a betöltést. De ezt nem tudjuk az iOmega eszközben megtenni, mivel a partíció read only és újracsatolni sem tudjuk, mert device is busy. Ehhez egy leírást itt találtok.Mivel én nem szeretem megbontani az eszközt és piszkálni a rendszer, ami garancia vesztéshez vezethet, így inkább egy másik megoldást kerestem a problémára, ami talán egy picit humánusabb. Újraindítottam a rendszert és megnéztem, hogy mi zajlik le a boot folyamat során. Hátha találok egy olyan állományt, ami később inicializálódik mint az RPC (hiszen csak ezután lehet a portokat átállítani) és az az állomány talán egy szerkeszthető partíción lesz. Ennek megállapításához a '/var/log/messages' állományt használtam. meg is találtam benne, hogy az RPC inicializálódása után az egyetlen folyamat ami elindul még az a stls_all.sh állomány. Ezt meg is kerestem, hol található:
find / -name 'stls_all.sh' 2>/dev/null
Megtaláltam, hogy az otthona a /mnt/system/opt/apps/axis/stls/stls_dist/bin/ könyvtárban leledzik.
Így már gyorsan módosítható is a fájl. Először az állomány legvégén hívtam meg a beállításomat, de rá kellett jönnöm, hogy korábban kilép a szkript, így ott nem hajtódik végre. Emiatt a legelejére betettem, hogy /etc/rc.nfs.
Tehát most már minden rendszerindításnál meghívásra kerül az állományom, és az összes szolgáltatás már fix porton hallgat. Így képes leszek a port-forwarding konfigurálásra a routeren. - Kapcsoljuk be a Security-t hogy tényleg csak azt osszuk meg amit szeretnénk és kontrollálni tudjuk azt, ki férhet hozzá a megosztáshoz. Ehhez navigáljunk a System -> Security felületre és kapcsoljuk be (ON). Adjuk meg az rendszergazdai fiók nevét valamint a jelszavát. Javaslom, hogy a titkosítást is pipáljuk be.
- Hozzunk létre a rendszerünk számára a megfelelő felhasználói accountokat. (Common -> Users)
- A megosztásnál tiltsuk meg a publikus megosztást. Ehhez navigáljunk a Storage -> Shares alá, ahol válasszuk ki a megosztást és az Access Permissions alatt az Everyone user read és write jogán vonjuk meg.
- Engedélyezzük, hogy a megosztáshoz csak és kizárólag a Citrix XenServer férhessen hozzá. Ehhez maradjunk ahol voltunk, csak az Access Permissions alatt található NFS blokkot válasszuk ki. Itt kattintsunk az Add an NFS Rule gombra. A Hostname mezőbe pedig beírható, hogy mely állomásokról engedélyezzük a hozzáférést. A minta lehet IP vagy domain, de akár egy teljes címtartomány, ha <IP>/<MASZK> módban írjuk le. A rendszer elfogadja a teljes 255.255.255.0 maszkot illetve a /24 formát is.
- Opcionális észrevétel, ha több megosztást is használunk, akkor mindenhol tiltsuk le a hozzáférést az Everyone felhasználónak, ugyanis ha az bármelyik megosztás esetében bent marad, akkor az távolról NFS segítségével szabadon felcsatolható. Valamint jelen pillanatban a megosztást lokálisan nem lehet elérni, mert nincs senkinek sem joga hozzá. Így érdemes egy felhasználót / csoportot hozzáadni az Access Permissions alatt, aki lokálisan is képes a Repository-t szerkeszteni.
- Az NFS szervert állítsuk be, hogy minden felhasználót kezeljen vendégként, azaz ne legyen teljes hozzáférése. Ehhez navigáljunk a Network -> Protocols alá, majd az NFS mellett található fogaskerékre kattintsunk, amellyel lekérhető a beállítása (settings). Itt pedig válasszuk ki a 'Treat client users as guest (all_squash)' lehetőséget.
NFS Port-Forwarding konfigurálása routeren:
- Jelentkezz be a routered admin felületén
- Keresd meg a port-forwarding opciót, vagy a portrange-forwarding lehetőséget, ha van
- Állítsd be a portokat:
- 111 TCP & UDP -> IPofNAS (portmap)
- 2049 TCP & UDP -> IPofNAS (NFS)
- TCP & UDP RPC.Mountd -> IPofNAS
- TCP & UDP RPC.Statd-> IPofNAS
- UDP RPC.Rquotad -> IPofNASSzemély szerint javaslom, hogy az RPC portokat 2050-2052 közé állítsd be, mert akkor az NFS portal együtt, mint portrange forwarding lehet beállítani, így 1 db bejegyzéssel leírható, a normális 4db helyett. - Hogy kívülről is hozzá tudjunk férni hálózatunkhoz, szükségünk lesz egy FIX IP címre. Ha ilyet nem tudunk / nek akarunk bérelni a szolgáltatótól, akkor pedig a routeren egy DDNS accountot kell készíteni. Ennek menetét nem írom le, de javaslom a dyndns.org használatát.
NFS Share csatolása a Citrix XenServer 6.0 szerveren:
- Csatlakozzunk a szerverhez / poolhoz a XenCenter segítségével.
- Hozzunk létre egy új Storage-t (Storage tab -> New SR)
- A varázsló segítségével adjuk meg, milyen storage-ot szeretnénk csatolni (ISO Library or NFS VHD)
- Adjunk nevet a megosztásnak.
- Majd a Location résznél a megosztás elérhetőségét kell megadni. Ez két részből áll. Első a szerver elérhetősége IP címmel vagy domain névvel. A második az NFS megosztás elérhetősége a szerveren.
<PublicIPofNAS>:<NFSLocation>
Az IP címet vagy tudjuk, vagy dyndns segítségével naprakészen tartjuk. Az NFS megosztás helyét pedig az iOmega eszköz pontosan megadja, csak navigáljunk a webes felületen a Storage -> Shares alá. Itt válasszuk ki a megosztásunk nevét, majd alatta lesz egy NFS block, amelyre ha kattintunk, előjön a megosztás helye.
Locaton:<NFSLocation> - A megszerzett információkkal sikeresen csatolható az NFS megosztás.