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
vxassist make my-vol 1G layout=stripe

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 growby

vxassist -g my-dg growto my-vol 2G
vxassist -g my-dg growby my-vol 600M

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 snapshot

vxassist -g my-dg snapstart my-vol
vxassist -g my-dg snapshot my-vol my-snap

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
layout=stripe-mirror

Estimate max volume size

vxassist maxsize
vxassist maxgrow

vxassist -g my-dg maxsize layout=… disk1 diskn
vxassist -g my-dg maxgrow my-vol

Remove a volume

vxassist remove

vxassist -g my-dg remove my-vol

Remove a volume

vxvol stop
vxedit -r rm
vxdg rmdisk

vxvol -g my-dg stop my-vol
vxedit -g my-dg -r rm my-vol
vxdg -g my-dg rmdisk my-disk

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
vxdmpadm getsubpaths dmpnodename=EMC_CLARiiON2_4

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.