A Veritas (akit manapság már Symantec néven kell emlegetni, hisz bekebelezte a Veritast) régen egyedinek és csúcstechnológiának számító tároló megoldásokat szállított üzleti rendszerekhez. Persze azóta más technológia is felnőtt valamelyest a Veritas szintjére (SVM, ZFS), mégis a mai napig meghatározó, tehát érdemes róla szót ejteni.
Először is arra kell kitértni, ami a Veritas Storage foundation egyik legnagyobb előnye, méghozzá az, hogy minden platformra létezik.
Íme a legújabb Storage Foundation 5.1 támogatott operációs rendszerek listája (A Linux/Unix és Windows támogató softwarek különálló termékek):
- * Solaris 9 and 10 (SPARC)
* Solaris 10 (x64/Opteron)
* AIX 5.3 and 6.1
* HP-UX support continues in 5.0.and in future releases
* Linux – Red Hat Enterprise Linux 5 (64-bit)
* Linux – Novell SUSE Linux Enterprise Server 10, and 11 (64-bit)
* Linux – Oracle Enterprise Linux 5
* Windows Server 2008: Web, Standard, Enterprise, or Datacenter Editions. x86, x64 and IA64.
* Windows Server 2003 (32-bit): Web, Standard, Enterprise, or Datacenter Editions (SP2 required)
* Windows Server 2003 R2 (32-bit): Standard, Enterprise, or Datacenter Editions (SP2 required)
* Windows Server 2003 for 64-bit Itanium (IA64): Enterprise or Datacenter Editions (SP2 required)
* Windows Server 2003 for x64 (AMD 64/Intel EM64T): Standard x64, Enterprise x64, or Datacenter x64 Editions (SP2 required)
* Windows Server 2003 R2 for x64 (AMD 64/Intel EM64T): Standard x64 R2, Enterprise x64 R2,or Datacenter x64 R2 Editons (SP2 required)
Mivel minden operációs rendszernek a lelke az adatkezelés, ezért bármely operációs rendszerre telepítjük, a software a rendszerünk mélyére fog beivódni. Ez sok esetben komoly patchelési és verzió követelményeket jelent, amit ismernünk kell és betartani, hogy egyáltalán telepíteni tudjuk. Ennek érdemes a Symantec oldalán, itt utána nézni mielőtt belevetjük magunkat.
Ez a rengeteg támogatott, kereszt platform technológiát meg is kell tudni fizetni. Mára sikerült más olcsóbb, ingyenesebb volume managereknek, és filesystemek-nek annyira fejlődni, hogy a Veritas Storage Foundation Basic verziója ingyenesen elérhető lehessen a következő korlátozásokkal:
- – Legfeljebb 4 VxVM volume per fizikai gép (a rendszer volume-kat, amik a rendszer bootolásához szükségesek nem beleszámolva)
– Legfeljebb 4 VxFS mountolt filesystem (a rendszer filesystem-eket, amik a rendszer bootolásához szükségesek nem beleszámolva)
– Maximum két processzor foglalatú gépekre alkalmazva
A telepítés alapvetően interaktív módban történik, a megfelelő kérdésekre több esetben csak ki kell választanunk a várt opciót. Ami pedig hihetetlenül jó a Veritas Storage foundation-ben, az az egyértelmű hibaüzenetek. Rengeteg különböző hibaüzenet definiálva van, és többnyire nagyon jól leírja a probléma okát, és a megoldásra is rávezet.
Veritas Storage Foundation Szervezeti egységek
A Veritas elég speciális, saját elvet követ a tárolási szervezeti egységei esetében. A nevek is egyediek, és talán egy kicsit az összefüggés is idegenként hathatnak.
Disk Media
A veritas esetében az alapot a disk médiák jelentik. Ahhoz, hogy a veritas volume manager tudja használni a diskjeinket, ahhoz először neki speciális slice szerkezetet kell létrehoznia a lemezeken. A veritas-os diskeknek kell hogy legyen egy PUBLIC és egy PRIVATE region-jük. A public rész felel a tényleges adatok tárolásáért, a private rész, az ahol a diskhez kapcsolódó meta adatok tárolódnak. Szerencsére erről nekünk alap esetben nem kell tudnunk sokat, ezeket ugyanis automatikusan lekezeli nekünk a Veritas Volume Manager.
A vxdisk list parancs az, ami kilistázza nekünk a rendszerünk által elérhető diskeket az aktuális állapotukkal. Az online invalid jelenti azt, hogy a disk elérhető, csak nincs előkészítve veritas-os felhasznására. Régebbi Veritasok esetén sajnos ez error státuszba látszik, habár a disk nem hibás, csupán nem előkészített.
A vxdisksetup paranccsal tudjuk ezt a kért szerkezetet létrehozni a diskjeinken. Vigyázat, ezzel megsemmisítünk minden olyan adatot, ami előtte a diskünkön volt.
Ez még persze nem jelenti azt, hogy van egy disk médiánk. Csupán annyit tesz, hogy már ez a disk a megfelelő struktúrával rendelkezik. Ahhoz, hogy disk médiánk legyen, definiálnunk kell Disk Groupot. A Disk group a legfelsőbb szervezeti egység, és ténylegesen csak virtuális valójában létező egység. Gyakorlatilag egy olyan csoportnév, ami alá a különböző szinten elérhető egyéb elemeket be tudunk sorolni. Disk Groupból több is létezhet természetesen, viszont több diskgrouphoz, nem tartozhat ugyan az a szervezeti egység egyszerre. Azért hozom fel a Disk Groupokat a Disk Media résznél, mert disk média nélkül nincs Disk Group. Mivel ez a Disk group egy meta adatbázisban létező hivatkozási pont, ezért a meta adatbázisunknak léteznie kell. Az pedig csak egy Disk Media-n lehet. Tehát akkor tudunk Disk Groupot létrehozni, ha ezzel egy időben legalább egy Disk Media-t is definiálunk.
A fenti képen jól látszik, hogy inicializáluk egy data nevű Disk Groupot és lemez1 néven megadjuk az első Disk Media-t. A vxprint paraccsal mindig le tudjuk kérni az összes elérhető veritasos szervezeti egységünket. Ezzel fogom prezentálni mindig hogy is állunk.
Amennyiben már létezik Disk Group-unk, azok után tetszés szerint adhatunk hozzá Disk Media-kat. Fontos megjegyezni, hogy miután létezik Disk Group, minden parancs esetében meg kell hivatkoznunk, hogy az a parancs melyik Disk Group-ra legyen érvényes. Ezt a -g kapcsolóval tehetjük meg (bár van lehetőség ennek hanyagolására, egy default Disk Group definiálásával, de senkinek nem ajánlom, mert nagyon csúnya félrehivatkozott műveletekhez vezethet).
Sub Disk
Amint van már Disk médiánk, már tudunk építkezni. A Sub Disk, mint ahogy a neve is jelzi a Disk Media egy bizonyos részét hivatott jelenteni. Egy Sub Disk fontos, hogy nem nyúlhat túl az adott Disk Media-n, viszont tetszés szerint egy teljes Disk Media méretét megadhatjuk Sub Disk-ként. Ez a Sub Disk réteg azért fontos, hogy egy fizikai rétegből logikai (akár kisebb) részeket állíthassunk elő. Ezáltal növelve a felhasználás lehetőségét.
Plex
Amint vannak logikai tárterületeink, megkezdhetjük a szerveződéseket, logikai csoportosításokat. A logikai tárhelyek, Sub Disk-eket Plexekbe kell foglalnunk. Bár nem túl jó definíció, de a Plex alap esetben olyan mint egy pool. Ha a Plex-ünkbe rakunk Sub Disk-ek által szimbolizált blokk területeket, az e szerint fog nőni. Nagyon fontos, hogy külön lépésben kell egy Plex-et létrehozni, illetve a Plex-hez Sub Disk-eket rendelni. Ez a hozzárendelés Sub Disk és Plex között az association, a hozzárendelés megszüntetése a disassociation.
Ahogy látszik is, amint az asszociáció (egymáshoz rendelés) megtörtént, a vxprint parancs kimenetelében is egymáshoz rendelődött a Plex és a Sub Disk.
Volume
A filerendszer szemszögéből nézve a legfelsőbb szervezeti egység a Volume. A Volume az a szint ahol már filerendszer hozható létre, mountolható, és ténylegesen használatba vehető. Volume-hoz alap esetben csak Plex rendelhető. Ezt a hozzárendelést viszont már attach és detach-nek nevezzük.
Ahogy látjuk most a Volume-nk mellett, az szerepel hogy DISABLE. Tehát még el is kell indítanunk, hogy ténylegesen birtokba vehessük.
VxFS
Eljutottunk odáig, hogy a volume készen áll. Most kell file rendszert tennünk rá. Bármilyen filesystem-et tehetünk rá, viszont a Veritas-nak van saját filerendszere is, az VxFS. Érdemes ezt használnunk, ha már a veritas volume manager-t választottuk, de természetesen nem kötelező.
Ezek után pedig elértünk a sor végére. Összefoglalom tehát milyen lépések szükségesek, röviden tömören:
- 1. Diskek felkészítése veritas volume manager-nek.
2. Disk Group létrehozása és legalább egy Disk Media definiálása.
3. Disk Media-bol Sub Disk(ek) létrehozása.
4. Plex létrehozása.
5. Sub Disk(ek) asszociálása a Plex-hez.
6. Volume létrehozása.
7. Plex attach-olása a Volume-hoz.
8. Volume elindítása.
9. Filesystem létrehozása a Volume-ra.
Online bővítés
Tehát már tudjuk milyen szervezeti szintek vannak a Veritas Volume Manager esetében. Azt is milyen szint milyen szinttel van kapcsolatban. Amennyiben a meglévő egy Disk Media -> egy Sub Disk -> egy Plex -> egy Volume rendszerünkben szeretnénk tárhelyet bővíteni, akkor mivel felhasználtuk a Sub Disk-ünkel a meglévő Disk Media-nk teljes kapacitását, ezért egy új Disk Media-t kell felhasználnunk. Azon egy újabb Sub Disk-et definiálni, és ezt az új Sub Disk-et hozzá kell adnunk a meglévő Plex-ünkhöz.
Ekkor a Plex mérete automatikusan megnő, viszont a hozzá kapcsolt Volume mérete viszont nem. Ezt nekünk kell külön átméreteznünk. Nagyon fontos ügyelni a Volume létrehozásakor, hogy FSGEN (filesystem generikus) Volume-t hozzunk létre, ugyanis ez teszi lehetővé az akadálymentes méretezgetési kísérleteinket.
Tükör létrehozása
Amennyiben adatbiztonságra szeretnénk törekedni, és ezt egy tükrözött Volume-al akarjuk megoldani, akkor ezt is megtehetjük probléma nélkül a most kibővített Plex-ünk segítségével. A Volume alatt a Plex található, tehát meg kell duplikálnunk a Plex alatti részt, és a Volume-hoz rendelni. Ekkor a Volume fel fogja ismerni, hogy két ugyan olyan Plex érhető el alatta, és automatikusan tükrözni fogja az adatait.
Ebben az esetben máris egy két lábon álló Volume-t birtoklunk, ahol ha az egyik Plex-el (vagy a benne lévő Sub Diskek egyikével) történik valami hiba, a Volume akkor is teljes mértékben funkcionálni fog tovább.
Ebből is kitűnhet, hogy a Sub Diskek szintjén tudunk adat bővítést elérni, a Plex szintjén pedig adatbiztonságot szervezni.
Veritas Asszisztens mindenre
Ahogy már az elején látszik, nagyon komplikált, és átláthatatlan rendszerek is építhetőek Veritas Volume Manager által. Pont azért, hogy egyszerűbben, mondhatni automatizáltan lehessen lekezelni ezen struktúrákat született meg a Veritas Assistant. Ez az a parancs, ami leveszi a hátunkról a terhet, és egyszerű kéréseinket a Disk Media, Sub Disk, Plex, Volume szerkezetére fordítja automatikusan.
Nézzünk néhány egyszerű példát arra, hogy mit, és hogyan tudunk kezelni a vxassist segítségével.
Egy 100MB méretű Volume létrehozása:
- #vxassist make appvol 100m
Egy 100MB méretű Volume létrehozása a disk03-ra:
- #vxassist make appvol 100m disk03
Egy 100MB méretű Stire Volume létrehozása:
- #vxassist make appvol2 100m layout=stripe
Egy 100MB méretű Stire Volume létrehozása megadott Disk Media-kból:
- #vxassist make appvol2 100m layout=stripe disk04 disk05 disk06
Egy 100MB méretű Raid5 Volume létrehozása:
- #vxassist make appvol4 100m layout=raid5
Volume Bővítése adott sectorig (8000):
- #vxassist growto vol3 8000
Volume Bővítése 8000 sectorral:
- #vxassist growby volapp 1000
Volume Csökkentése adott sectorig (1300):
- #vxassist shrinkto volcat 1300
Volume Csökkentése 8000 sectorral:
- #vxassist shrinkby volapp2 8000
Volume törlése leállítás után:
- #vxvol stop appvol1
#vxedit -rf rm appvol11
Egy új Tükrözött Volume létrehozása:
- #vxassist make appvol22 100m layout=mirror
Egy új Tükrözött Volume létrehozása Dirty Regian Log-olással:
- #vxassist make volume_name length layout=mirror,log
Meglévő Volume tükrözése:
- #vxassist mirror vol44
Az összes elérhető Volume tükrözése az elérhető területekre:
/etc/vx/bin/vxmirror -a
Dirty Regian Log
A Veritas Volume Manager esetében jelent meg ez az opcionálisan használható lehetőség. A DRL egy olyan apró tárterület (napló), amibe minden egyes I/O művelet feljegyzőik. Egy bittérkép/bitmap tehát ez a DRL. Így amennyiben bármilyen rendszerhiba, vagy más meghibásodás történne, lehetőség van a DRL naplózásaiból minden Volume adatot visszaállítani, illetve be nem fejezett I/O műveleteket lezárni.
- #vxassist addlog vol03
Volume Online Snapshot
Mentések biztosításához lehetőségünk van a Volume-nkról online snapshotokat készíteni. Ilyenkor a rensszerünk, egy csak írható volumet készít, amiről átszinkronizálja a menteni kívánt Volume adatait.
- #vxassist snapstart vol8
Disk Commands
Operation |
Command |
Example |
Initialize disk |
vxdisksetup |
vxdisksetup -i c1t9d0 |
Uninitialize disks |
vxdiskunsetup |
vxdiskunsetup -C c1t9d0 |
List disks |
vxdisk list |
|
List disk header |
vxdisk list |
vxdisk list disk01 |
List disk private region |
vxprivutil list |
vxprivutil list /dev/rdsk/c1t9d0s2 |
Reserve a disk |
vxedit set |
vxedit -g my-dg set reserve=on my-disk |
Rename a disk |
vxedit rename |
vxedit -g my-dg rename my-disk new-disk |
Rescan all disks |
vxdctl enable |
|
Disk Group Commands
Operation |
Command |
Example |
Create disk group |
vxdg init |
vxdg init my-dg disk01=c1t9d0 |
Remove disk group |
vxdg destroy |
vxdg destroy my-dg |
Add disk |
vxdg adddisk |
vxdg -g my-dg adddisk disk02=c1t8d0 |
Remove disk |
vxdg rmdisk |
vxdg -g my-dg rmdisk disk02 |
Import diskgroup |
vxdg import |
vxdg import my-dg |
Deport diskgroup |
vxdg deport |
vxdg deport my-dg |
List diskgroups |
vxdg list |
vxdg -o alldgs -e list |
List free space |
vxdg free |
vxdg -g my-dg free |
List total free space |
vxassist |
vxassist -g my-dg maxsize layout=concat |
Rename diskgroup on deport |
vxdg deport |
vxdg -n new-dg deport old-dg |
Rename diskgroup on import |
vxdg import |
vxdg -n new-dg import old-dg |
Evacuate data from a disk |
vxevac |
vxevac -g my-dg fromdisk todisk(s) |
Plex Commands
Operation |
Command |
Example |
Create a plex |
vxmake plex |
vxmake -g my-dg plex my-plex sd=my-sd |
Associate a plex |
vxplex att |
vxplex -g my-dg att my-vol my-plex |
Dis-associate a plex |
vxplex dis |
vxplex -g my-dg dis my-plex |
Attach a plex |
vxplex att |
vxplex -g my-dg att my-vol my-plex |
Detach a plex |
vxplex det |
vxplex -g my-dg det my-plex |
List plexes |
vxprint |
vxprint -lp |
Remove a plex |
vxedit |
vxedit -g my-dg rm my-plex |
Subdisk Commands
Operation |
Command |
Example |
Create a subdisk |
vxmake sd |
vxmake -g my-dg my-sd disk1,1,5000 |
Remove subdisk |
vxedit rm |
vxedit -g my-dg rm my-sd |
Display subdisk info |
vxprint -st |
|
Associate subdisk to plex |
vxsd assoc |
vxsd -g my-dg assoc my-plex my-sd |
Disassociate subdisk |
vxsd dis |
vxsd -g my-dg dis my-sd |
Volume Commands
Operation |
Command |
Example |
Create a volume |
vxassist make |
vxassist -g my-dg make my-vol 1G |
Delete a volume |
vxedit rm |
vxedit -g my-dg -r rm my-vol |
Display volume info |
vxprint -vt |
vxprint -g my-dg -vt |
Display volume info |
vxinfo |
vxinfo -g my-dg my-vol |
Resize a volume |
vxassist growto |
vxassist -g my-dg growto my-vol 2G |
Start a volume |
vxvol start |
vxvol -g my-dg start my-vol |
Stop a volume |
vxvol stop |
vxvol -g my-dg stop my-vol |
Initialise a volume |
vxvol init active |
vxvol -g my-dg init active my-vol |
Recover a volume |
vxrecover |
vxrecover -g my-dg my-vol |
Mirror a volume |
vxassist mirror |
vxassist -g my-dg mirror my-vol |
Add log to a volume |
vxassist addlog |
vxassist -g my-dg addlog my-vol |
Snapshot a volume |
vxassist snapstart |
vxassist -g my-dg snapstart my-vol |
Change volume layout |
vxassist relayout |
vxassist -g my-dg relayout my-vol layout=stripe |
Convert volume type |
vxassist convert |
vxassist -g my-dg convert my-vol |
Estimate max volume size |
vxassist maxsize |
vxassist -g my-dg maxsize layout=… disk1 diskn |
Remove a volume |
vxassist remove |
vxassist -g my-dg remove my-vol |
Remove a volume |
vxvol stop |
vxvol -g my-dg stop my-vol |
Help on layout |
vxassist help |
vxassist help layout |
Multipathing Commands
Operation |
Command |
Example |
Display enclusres |
vxdmpadm listenclosure |
vxdmpadm listenclosure all |
Display controllers |
vxdmpadm listctlr |
vxdmpadm listctlr all |
Display subpaths |
vxdmpadm getsubpaths |
vxdmpadm getsubpaths ctlr=c3 |
Miscellaneous Commands
Operation |
Command |
Example |
Enable Enclosure Based Naming |
vxddladm set namingscheme |
vxddladm set namingscheme=ebn |
Disable Enclosure Based Naming |
vxddladm set namingscheme |
vxddladm set namingscheme=obn |
Bár ezzel korán sem részleteztem a Veritas Volume Manager és Veritas File System minden hasznos és elérhető tudását, de bízom benne, hogy az alapokat, és a leginkább használt részeket sikerült e írásnak bemutatnia.
Egy angol nyelvű összefoglaló cheatsheet elérhető itt.
“Veritas Storage Foundation” bejegyzéshez 2 hozzászólás