How to setup LVM

16
LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreŃu Page 1 of 16 Introducere Dimensionarea corectă a subsistemului de stocare a datelor şi layout-ului sistemului de fişiere este una din cele mai grele operaŃii care trebuie efectuate în procesul de planificare a instalării unui sistem Unix indiferent de dimensiunea acestuia sau de numărul de utilizatori pe care îi va deservi. Acest document se doreşte a fi o scurtă prezentare a facilităŃilor şi beneficiilor puse la dispoziŃie de implementarea LVM pentru Linux folosind pentru exemplificare câteva din cele mai des întâlnite scenarii. PărŃi din acest document (definiŃii de termeni şi expresii) au fost traduse în limba română din diferite surse disponibile public în reŃeaua Internet. Toate exemplele au fost rulate într-o maşină virtuală (total separată de orice mediu de producŃie) cu Fedora 8 instalat ca sistem de operare. NoŃiuni de bază despre LVM Logical volume management (LVM) este o modalitate de abstractizare a spaŃiului de stocare a datelor. Folosind LVM toate dispozitivele de stocare (discuri fizice sau partiŃii de pe discuri fizice), indiferent de dimensiunea sau proprietătile acestora, pot fi abstractizate şi privite ca o singură entitate. Prin agregarea partiŃiilor şi/sau discurilor, LVM poate însuma spaŃii mici de stocare într-un singur disc virtual contiguu şi unitar. În terminologia LVM acest disc virtual se numeste “volume group”. Volume Group (VG) – Un grup de volume este cel mai înalt nivel de abstractizare folosit în LVM şi conŃine o colecŃie de volume fizice grupate împreună într-un singur grup administrativ. Un VG poate fi partitionat, din punct de vedere logic, în unul sau mai multe volume logice. Phisical Volume (PV) – Un volum fizic este un mediu fizic pe care se pot stoca date din punctul de vedere al sistemului de operare. În cele mai multe cazuri un volum fizic este un harddisk, însă în Linux poate fi folosit orice “block device” pe post de volum fizic (ex. un fişier, o partitie de pe un disc sau o matrice RAID software). Fiecare volum fizic dintr-un VG furnizează spaŃiu de stocare de dimensiuni diferite, acest spaŃiu este împărŃit în blocuri fizice de aceeaşi dimensiune denumite Phisical Extents (PE). Dimensiunea unui PE este constantă pentru toate volumele fizice care fac parte din acelasi VG şi defineşte dimensiunea minimă alocabilă pentru stocarea de date pe volumele fizice care fac parte din acelaşi VG. Dimensiunea PE se defineste de utilizator la crearea unui VG, în Linux valoarea implicită este de 4MB.

description

How to setup LVM in linux

Transcript of How to setup LVM

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 1 of 16

    Introducere

    Dimensionarea corect a subsistemului de stocare a datelor i layout-uluisistemului de fiiere este una din cele mai grele operaii care trebuie efectuate nprocesul de planificare a instalrii unui sistem Unix indiferent de dimensiuneaacestuia sau de numrul de utilizatori pe care i va deservi.

    Acest document se dorete a fi o scurt prezentare a facilitilor i beneficiilorpuse la dispoziie de implementarea LVM pentru Linux folosind pentru exemplificarecteva din cele mai des ntlnite scenarii. Pri din acest document (definiii determeni i expresii) au fost traduse n limba romn din diferite surse disponibilepublic n reeaua Internet.

    Toate exemplele au fost rulate ntr-o main virtual (total separat de oricemediu de producie) cu Fedora 8 instalat ca sistem de operare.

    Noiuni de baz despre LVM

    Logical volume management (LVM) este o modalitate de abstractizare aspaiului de stocare a datelor.

    Folosind LVM toate dispozitivele de stocare (discuri fizice sau partiii de pediscuri fizice), indiferent de dimensiunea sau propriettile acestora, pot fiabstractizate i privite ca o singur entitate. Prin agregarea partiiilor i/saudiscurilor, LVM poate nsuma spaii mici de stocare ntr-un singur disc virtualcontiguu i unitar. n terminologia LVM acest disc virtual se numeste volumegroup.

    Volume Group (VG) Un grup de volume este cel mai nalt nivel deabstractizare folosit n LVM i conine o colecie de volume fizice grupate mpreunntr-un singur grup administrativ. Un VG poate fi partitionat, din punct de vederelogic, n unul sau mai multe volume logice.

    Phisical Volume (PV) Un volum fizic este un mediu fizic pe care se potstoca date din punctul de vedere al sistemului de operare. n cele mai multe cazuriun volum fizic este un harddisk, ns n Linux poate fi folosit orice block device pepost de volum fizic (ex. un fiier, o partitie de pe un disc sau o matrice RAIDsoftware).

    Fiecare volum fizic dintr-un VG furnizeaz spaiu de stocare de dimensiunidiferite, acest spaiu este mprit n blocuri fizice de aceeai dimensiune denumitePhisical Extents (PE). Dimensiunea unui PE este constant pentru toate volumelefizice care fac parte din acelasi VG i definete dimensiunea minim alocabil pentrustocarea de date pe volumele fizice care fac parte din acelai VG.

    Dimensiunea PE se defineste de utilizator la crearea unui VG, n Linuxvaloarea implicit este de 4MB.

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 2 of 16

    Logical Volume (LV) Volumul logic poate fi asemnat cu o partiie de peun disc partiionat conform metodei tradiionale. Un volum logic este vzut ca unblock device standard, prin urmare poate conine un sistem de fiiere.

    Fiecare volum logic dintr-un VG este mprit n blocuri logice denumiteLogical Extents (LE). Dimensiunea unui bloc logic (LE) este egal cu dimensiuneaunui bloc fizic (PE) pentru toate volumele logice care fac parte din acelai VG. Un LVpoate s ocupe unul sau mai multe blocuri logice (LE), redimensionarea acestuia sepoate face doar n incremente de dimensiunea unui bloc logic (LE).

    Cteva din avantajele folosirii LVM:- Flexibilitate i scalabilitate pentru managementul subsistemului de

    stocare- Dimensiunea maxim a unui filesystem nu este restricionat de

    dimensiunea celui mai mare disc din sistem- Dimensiunea maxim a unui fiier nu este restricionat de

    dimensiunea discului pe care s-a creat fiierul- Operaia de schimbare a unui disc nu necesit neaprat oprirea

    sistemului sau a aplicaiei care ruleaz- Efectuarea de backup-uri consistente este uurat de facilitatea

    LVM-ului de a crea snapshot-uri pentru volumele logice

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 3 of 16

    Cazuri concrete

    1. Definirea unui filesystem folosind LVM

    Pregtesc discul /dev/sdb pentru a fi folosit cu LVM apoi folosesc spaiulfurnizat de acesta pentru a crea un VG cu numele DataVG[root@fedora-machine1 ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created[root@fedora-machine1 ~]# vgcreate DataVG /dev/sdb Volume group "DataVG" successfully created[root@fedora-machine1 ~]#

    n DataVG creez un nou volum logic cu numele app1_lv avnd dimensiuneade 900M. Pe volumul logic app1_lv definesc un filesystem de tipul ext3 pe care lmontez n /Data/app1.[root@fedora-machine1 ~]# lvcreate -n app1_lv -L 900M DataVG Logical volume "app1_lv" created[root@fedora-machine1 ~]# mkfs -t ext3 /dev/DataVG/app1_lvmke2fs 1.40.2 (12-Jul-2007)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)115200 inodes, 230400 blocks11520 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=2390753288 block groups32768 blocks per group, 32768 fragments per group14400 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376

    Writing inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 34 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@fedora-machine1 ~]# mkdir -p /Data/app1[root@fedora-machine1 ~]# mount /dev/DataVG/app1_lv /Data/app1

    2. Extinderea filesystem-ului

    Aceata este situaia n care se dorete folosirea unui al doilea disc pentru aextinde un filesystem cu scopul de a obine o capacitate mrit de stocare a datelor.

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 4 of 16

    n cele mai multe cazuri un astfel de filesystem este cel care conine dateleutilizatorilor (ex. colecia de fisiere .mp3, colecia de fotografii personale, etc.) sau aaplicaiei care ruleaz pe sistemul n cauz (ex. baza de date cu clienii firmei).

    Starea sistemului nainte de modificare:[root@fedora-machine1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 3.2G 2.4G 604M 81% //dev/sda1 99M 19M 76M 20% /boottmpfs 125M 0 125M 0% /dev/shm/dev/mapper/DataVG-app1_lv 886M 886M 0 100% /Data/app1[root@fedora-machine1 ~]# pvscan PV /dev/sdb VG DataVG lvm2 [1020.00 MB / 120.00 MB free] PV /dev/sda2 VG VolGroup00 lvm2 [5.88 GB / 2.12 GB free] Total: 2 [6.87 GB] / in use: 2 [6.87 GB] / in no VG: 0 [0 ][root@fedora-machine1 ~]# fdisk -lDisk /dev/sda: 6442 MB, 6442450944 bytes255 heads, 63 sectors/track, 783 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x24fe51bf

    Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 783 6185025 8e Linux LVM

    Disk /dev/sdb: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x00000000

    Disk /dev/sdb doesn't contain a valid partition table

    Disk /dev/sdc: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x00000000

    Disk /dev/sdc doesn't contain a valid partition table[root@fedora-machine1 ~]#

    Folosesc spaiul furnizat de /dev/sdc pentru a extinde cu 1G filesystem-ulmontat n /Data/app1. Aceast operaie se efectueaz n 3 pai:

    Pregtesc discul pentru LVM i l includ n DataVG:[root@fedora-machine1 ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created[root@fedora-machine1 ~]# vgextend /dev/DataVG /dev/sdc Volume group "DataVG" successfully extended[root@fedora-machine1 usr]# pvscan PV /dev/sdb VG DataVG lvm2 [1020.00 MB / 120.00 MB free] PV /dev/sdc VG DataVG lvm2 [2.00 GB / 2.00 GB free] PV /dev/sda2 VG VolGroup00 lvm2 [5.88 GB / 2.12 GB free] Total: 3 [8.87 GB] / in use: 3 [8.87 GB] / in no VG: 0 [0 ][root@fedora-machine1 ~]#

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 5 of 16

    Extind LV-ul care conine filesystem-ul montat n /Data/app1 (LV-ul va fiextins cu 1G).[[root@fedora-machine1 ~]# lvextend -L +1G /dev/DataVG/app1_lv Extending logical volume app1_lv to 1.88 GB Logical volume app1_lv successfully resized[root@fedora-machine1 ~]#

    Extind online filesystem-ul pn la dimensiunea maxim a LV-ului (adaug 1Gde spaiu liber n filesystem)[root@fedora-machine1 ~]# resize2fs /dev/DataVG/app1_lvresize2fs 1.40.2 (12-Jul-2007)Filesystem at /dev/DataVG/app1_lv is mounted on /Data/app1; on-line resizing requiredold desc_blocks = 1, new_desc_blocks = 1Performing an on-line resize of /dev/DataVG/app1_lv to 492544 (4k) blocks.The filesystem on /dev/DataVG/app1_lv is now 492544 blocks long.[root@fedora-machine1 ~]#

    Starea sistemului dup modificare:[root@fedora-machine1 ~]# pvscan PV /dev/sdb VG DataVG lvm2 [1020.00 MB / 0 free] PV /dev/sdc VG DataVG lvm2 [2.00 GB / 1.11 GB free] PV /dev/sda2 VG VolGroup00 lvm2 [5.88 GB / 2.12 GB free] Total: 3 [8.87 GB] / in use: 3 [8.87 GB] / in no VG: 0 [0 ][root@fedora-machine1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 3.2G 2.4G 604M 81% //dev/sda1 99M 19M 76M 20% /boottmpfs 125M 0 125M 0% /dev/shm/dev/mapper/DataVG-app1_lv 1.9G 887M 920M 50% /Data/app1[root@fedora-machine1 ~]#

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 6 of 16

    3. Redundana datelor

    Implementarea LVM-ului pentru Linux ofer, momentan, doar stripping imirroring ca metode native de redundan a datelor.

    Spre deosebire de Unix-urile proprietare, implementarea LVM pentru Linuxpoate s foloseasc o matrice RAID software n acelai fel n care folosete un discfizic iar prin combinarea LVM cu matricile software RAID se poate obine pentru unfilesystem att redundana datelor specific fiecrui nivel RAID ct i flexibilitatea iuurina administrrii subsistemului de stocare, specifice LVM-ului.

    n cazul filesystem-ului din exemplul anterior, redundana datelor se poateobine foarte uor prin construirea unei matrici RAID software (vazut de linux ca/dev/md*), includerea ei n DataVG i mutarea volumului logic app1_lv pe/dev/md0.

    Creez o matrice software RAID5 folosind discurile fizice /dev/sdd, /dev/sd3 i/dev/sdf conectate n prealabil.[root@fedora-machine1 ~]# mdadm create /dev/md0 --level=5 --raid-devices=3 /dev/sdd /dev/sde/dev/sdfmdadm: array /dev/md0 started.[root@fedora-machine1 ~]#

    Creez fiierul /etc/mdadm.conf cu datele despre matricea nou creat astfelnct matricea s fie activat automat la pornirea Linux-ului:mdadm --detail --brief /dev/md0 > /etc/mdadm.conf

    Pregtesc matricea RAID pentru LVM i o adaug la DataVG:[root@fedora-machine1 ~]# pvcreate /dev/md0 Physical volume "/dev/md0" successfully created[root@fedora-machine1 ~]# vgextend DataVG /dev/md0 Volume group "DataVG" successfully extended[root@fedora-machine1 ~]#

    Deoarece volumul logic app1_lv se ntinde pe mai mult de un disc, operaiade mutare se face mutnd toate LE-urile alocate volumului logic app1_lv de pefiecare disc n parte.

    Prin specificarea numelui volumului logic ca parametru la comanda pvmove,specific mutarea DOAR a LE-urilor care sunt alocate pentru volumul logic app1_lv.

    Mut LE-urile volumului logic app1_lv de pe /dev/sdb pe /dev/md0. Aceastoperaie este de lung durat, timpul necesar pentru mutarea datelor depinde dedimensiunea i viteza de transfer a celor dou discuri.[root@fedora-machine1 ~]# pvmove --name app1_lv /dev/sdb /dev/md0 /dev/sdb: Moved: 4.7% /dev/sdb: Moved: 25.1% /dev/sdb: Moved: 44.3% /dev/sdb: Moved: 67.1% /dev/sdb: Moved: 88.2%

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 7 of 16

    /dev/sdb: Moved: 100.0%[root@fedora-machine1 ~]#

    Mut LE-urile volumului logic app1_lv de pe /dev/sdc pe /dev/md0. Aceastoperaie este de lung durat, timpul necesar pentru mutarea datelor depinde dedimensiunea i viteza de transfer a celor dou discuri.[root@fedora-machine1 ~]# pvmove --name app1_lv /dev/sdc /dev/md0 /dev/sdc: Moved: 5.5% /dev/sdc: Moved: 27.7% /dev/sdc: Moved: 49.6% /dev/sdc: Moved: 71.9% /dev/sdc: Moved: 93.0% /dev/sdc: Moved: 100.0%[root@fedora-machine1 ~]#

    Scot /dev/sdb i /dev/sdc din DataVG pentru a nu ajunge n viitor (princreerea unui nou filesystem sau prin extinderea celui existent) n situaia de a aveaun filesystem parial pe o matrice RAID i parial pe discuri fizice care nu oferredundan.[root@fedora-machine1 ~]# vgreduce DataVG /dev/sdb /dev/sdc Removed "/dev/sdb" from volume group "DataVG" Removed "/dev/sdc" from volume group "DataVG"[root@fedora-machine1 ~]#

    n aceast configuraie problemele legate de discuri fizice defecte suntrezolvate folosind tehnici specifice matricilor RAID (comanda mdadm cu parametrii)iar problemele legate de managementul volumelor sunt rezolvate folosind comenziLVM (vgextend, lvcreate, lvextend, etc.)

    Schimbarea de la un nivel RAID la altul se poate face foarte usor prin mutarea(pvmove) volumului logic de pe o matrice RAID pe alta, definit n prealabil cunivelul RAID dorit.

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 8 of 16

    4. Backup-uri consistente

    Un backup consistent este efectuat cu succes atunci cnd datele nu se modificn intervalul de timp necesar pentru a rula procesul de backup. Pentru servere foartencrcate, cu multi utilizatori conectai sau care ruleaz aplicaii de baze de date,acest lucru este foarte dificil de garantat fr a fi necesar oprirea aplicaiei careruleaz sau chiar ntregul sistem.

    Folosind LVM putem face un snapshot la un volum logic, rezultatul fiindimaginea (starea) unui volum logic n momentul n care a fost creat shapshot-ul.

    Crearea unui sanpshot este instantanee nefiind necesar oprirea aplicatiei sau aserverului de producie. Dup crearea unui snapshot avem la dspoziie dou copii aaceluiasi LV, una poate fi folosit n continuare de aplicaie pentru operaiile curentecu cu sistemul de fiiere n timp ce a doua poate fi folosit de procesul de backup.

    Folosind snapshot avem la dispoziie dou copii ale aceluiai LV nsdimensiunea copiei nu trebuie s fie egal cu dimensiunea originalului, un snapshotva folosi doar spaiul necesar pentru a marca diferenele dintre cele dou copii aleLV-ului n perioada de timp n care shapshot-ul este activ. Dimensiunea snapshot-ului (specificat la crearea acestuia) definete volumul maxim de diferene care pots existe ntre LV-ul original i snapshot.

    n cazul n care se dorete efectuarea unui backup a datelor din volumul logicapp1_lv acesta se poate realiza astfel:

    Creez un snapshot al volumului logic app1_lv n care pot s pstrez maxim500M de informaie privind diferenele dintre snapshot i volumul logic. Snapshot-uleste ntotdeauna creat n acelai VG n care este definit i volumul logic a cruiimagine o creez.[root@fedora-machine1 ~]# lvcreate -s -L 500M -n snap_app1_lv /dev/DataVG/app1_lv Logical volume "snap_app1_lv" created[root@fedora-machine1 ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% app1_lv DataVG owi-ao 2.00G snap_app1_lv DataVG swi-a- 500.00M app1_lv 0.00 LogVol00 VolGroup00 -wi-ao 3.25G LogVol01 VolGroup00 -wi-ao 512.00M[root@fedora-machine1 ~]#

    Montez snapshot-ul n filesystem[root@fedora-machine1 ~]# mkdir -p /Data/snapshot_app1_lv[root@fedora-machine1 ~]# mount /dev/DataVG/snap_app1_lv /Data/snapshot_app1_lv/[root@fedora-machine1 ~]#

    Fac backup la datele din snapshot. Am folosit tar pentru a crea o arhiv care smi serveasc pe post de backup fiindc nu am instalat nici un software specializat nbackup.[root@fedora-machine1 ~]# tar -zcf /var/backup.tar.gz /Data/snapshot_app1_lv/*

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 9 of 16

    tar: Removing leading `/' from member namestar: Removing leading `/' from hard link targets[root@fedora-machine1 ~]#

    Backup-ul s-a terminat, fac umount filesystem-ul de pe snapshot i stergsnapshot-ul[root@fedora-machine1 ~]# umount /Data/snapshot_app1_lv[root@fedora-machine1 ~]# lvremove /dev/DataVG/snap_app1_lvDo you really want to remove active logical volume "snap_app1_lv"? [y/n]: y Logical volume "snap_app1_lv" successfully removed[root@fedora-machine1 ~]#

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 10 of 16

    5. Mutarea unui disc sau a unui set de discuri

    Folosind LVM mutarea unui disc sau a unui set de discuri dintr-uncalculator/server n altul, presupune mutarea tuturor discurilor care fac parte dinacelai VG.

    nainte de a muta un set de discuri, VG-ul care conine discurile ce vor fimutate trebuie dezactivat i apoi exportat din sistemul surs.

    [root@fedora-machine1 ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% app1_lv DataVG -wi-ao 2.00G LogVol00 VolGroup00 -wi-ao 3.25G LogVol01 VolGroup00 -wi-ao 512.00M[root@fedora-machine1 ~]#umount /dev/DataVG/app1_lv[root@fedora-machine1 ~]# lvchange -an /dev/DataVG/app1_lv[root@fedora-machine1 ~]# vgchange -an DataVG 0 logical volume(s) in volume group "DataVG" now active[root@fedora-machine1 ~]# vgexport DataVG Volume group "DataVG" successfully exported[root@fedora-machine1 ~]#

    Discurile care fac parte din VG-ul DataVG pot fi mutate fizic ncalculatorul/serverul destinaie.

    n mod implicit la pornirea Linux-ului se face automat o scanare a tuturordiscurilor pentru a se identifica toate grupurile de volume definite. n cazul discurilorhot-swap se pot folosi comenzile pvscan i vgscan pentru a identifica discurilerecent adugate i numele VG-urilor care sunt definite pe aceste discuri.[root@fedora-machine2 ~]# pvscan PV /dev/sda2 VG VolGroup00 lvm2 [7.78 GB / 32.00 MB free] PV /dev/md0 is in exported VG DataVG [8.00 GB / 6.00 GB free] Total: 2 [15.78 GB] / in use: 2 [15.78 GB] / in no VG: 0 [0 ][root@fedora-machine2 ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2 Found exported volume group "DataVG" using metadata type lvm2[root@fedora-machine2 ~]#

    Importul i activarea VG-ului DataVG se face cu ajutorul comenzilorvgimport i vgchange, dup activarea VG-ului se pot monta toate filesystem-uriledefinite pe volumele logice.[root@fedora-machine2 ~]# vgimport DataVG Volume group "DataVG" successfully imported[root@fedora-machine2 ~]# vgchange -ay DataVG 1 logical volume(s) in volume group "DataVG" now active[root@fedora-machine2 ~]# mkdir -p /Data/app1[root@fedora-machine2 ~]# mount /dev/DataVG/app1_lv /Data/app1/[root@fedora-machine2 ~]# df hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 7.1G 3.0G 3.8G 45% //dev/sda1 190M 19M 162M 11% /boot

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 11 of 16

    tmpfs 125M 0 125M 0% /dev/shm/dev/mapper/DataVG-app1_lv 2.0G 993M 918M 52% /Data/app1[root@fedora-machine2 ~]#

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 12 of 16

    6. Harddisk upgrade

    n cazul n care Linux-ul s-a instalat (folosind schema implicit de partiionaresi layout propus la instalarea Fedora) pe un disc, iniial considerat suficient demare, iar volumul de date depete capacitatea de stocare curent.

    Se dorete mutarea complet a sistemului de operare pe un disc nou decapacitate mai mare iar dup mutare discul vechi va fi scos din sistem.

    [root@fedora-machine1 ~]# fdisk l

    Disk /dev/sda: 4294 MB, 4294967296 bytes255 heads, 63 sectors/track, 522 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x000482c9

    Device Boot Start End Blocks Id System/dev/sda1 * 1 25 200781 83 Linux/dev/sda2 26 522 3992152+ 8e Linux LVM

    Disk /dev/sdb: 6442 MB, 6442450944 bytes255 heads, 63 sectors/track, 783 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x24fe51bf

    Device Boot Start End Blocks Id System

    [root@fedora-machine1 ~]#

    Creez, pe /dev/sdb, dou partiii (una pentru /boot, 100Mb , i una pentrurestul sistemului definit ca Linux LVM), prima partiie (/dev/sdb1) va avea i flag-ul bootable setat.[root@fedora-machine1 ~]# fdisk /dev/sdb

    Command (m for help): pDisk /dev/sdb: 6442 MB, 6442450944 bytes255 heads, 63 sectors/track, 783 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x24fe51bf

    Device Boot Start End Blocks Id System

    Command (m for help): pDisk /dev/sdb: 6442 MB, 6442450944 bytes255 heads, 63 sectors/track, 783 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0x24fe51bf

    Device Boot Start End Blocks Id System/dev/sdb1 * 1 13 104391 83 Linux/dev/sdb2 14 783 6185025 8e Linux LVM

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 13 of 16

    Command (m for help): wThe partition table has been altered!

    Calling ioctl() to re-read partition table.Syncing disks.[root@fedora-machine1 ~]#

    Creez filesystem (ext3) pe /dev/sdb1, l montez n directorul /new_disk/boot icopiez coninutul directorului /boot pe noul disk.[root@fedora-machine1 ~]# mkfs -t ext3 /dev/sdb1mke2fs 1.40.2 (12-Jul-2007)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)26104 inodes, 104388 blocks5219 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=6737100813 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729

    Writing inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 21 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@fedora-machine1 ~]#

    [root@fedora-machine1 ~]# mkdir -p /new_disk/boot[root@fedora-machine1 ~]# mount /dev/sdb1 /new_disk/boot[root@fedora-machine1 ~]# cp -a /boot/* /new_disk/boot/[root@fedora-machine1 ~]# ls -l /boot /new_disk/boot/boot:total 13047-rw-r--r-- 1 root root 79210 2007-10-30 19:00 config-2.6.23.1-42.fc8-rw-r--r-- 1 root root 79370 2007-11-09 03:46 config-2.6.23.1-49.fc8drwxr-xr-x 2 root root 1024 2007-11-30 17:33 grub-rw------- 1 root root 3724750 2007-11-30 16:22 initrd-2.6.23.1-42.fc8.img-rw------- 1 root root 3724993 2007-11-30 17:32 initrd-2.6.23.1-49.fc8.imgdrwx------ 2 root root 12288 2007-11-30 16:12 lost+found-rw-r--r-- 1 root root 851074 2007-10-30 19:00 System.map-2.6.23.1-42.fc8-rw-r--r-- 1 root root 851118 2007-11-09 03:46 System.map-2.6.23.1-49.fc8-rw-r--r-- 1 root root 1978656 2007-10-30 19:00 vmlinuz-2.6.23.1-42.fc8-rw-r--r-- 1 root root 1978688 2007-11-09 03:46 vmlinuz-2.6.23.1-49.fc8

    /new_disk/boot:total 13046-rw-r--r-- 1 root root 79210 2007-10-30 19:00 config-2.6.23.1-42.fc8-rw-r--r-- 1 root root 79370 2007-11-09 03:46 config-2.6.23.1-49.fc8drwxr-xr-x 2 root root 1024 2007-11-30 17:33 grub-rw------- 1 root root 3724750 2007-11-30 16:22 initrd-2.6.23.1-42.fc8.img

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 14 of 16

    -rw------- 1 root root 3724993 2007-11-30 17:32 initrd-2.6.23.1-49.fc8.imgdrwx------ 2 root root 12288 2007-11-30 16:12 lost+found-rw-r--r-- 1 root root 851074 2007-10-30 19:00 System.map-2.6.23.1-42.fc8-rw-r--r-- 1 root root 851118 2007-11-09 03:46 System.map-2.6.23.1-49.fc8-rw-r--r-- 1 root root 1978656 2007-10-30 19:00 vmlinuz-2.6.23.1-42.fc8-rw-r--r-- 1 root root 1978688 2007-11-09 03:46 vmlinuz-2.6.23.1-49.fc8[root@fedora-machine1 ~]#

    Fedora folosete n /etc/fstab att nume de device-uri ct i etichete alediferitelor filesystem-uri pentru a le identifica i a le monta corect n structuraierarhic specific fiecarui sistem Unix. Setez eticheta /boot pentru filesystem-ulexistent pe /dev/sdb1 astfel nct s fie montat corect la pornirea Linux-ului.

    Pentru restul distribuiilor Linux, se poate modifica fiierul /etc/fstab smonteze /dev/sdb1 n /boot sau dup scoaterea discului vechi din calculator, disculnou trebuie conectat n aa fel nct s fie vzut ca /dev/sda.[root@fedora-machine1 ~]# cat /etc/fstab/dev/VolGroup00/LogVol00 / ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0/dev/VolGroup00/LogVol01 swap swap defaults 0 0[root@fedora-machine1 ~]# tune2fs -L /boot /dev/sdb1tune2fs 1.40.2 (12-Jul-2007)[root@fedora-machine1 ~]# tune2fs -l /dev/sdb1 | grep FilesystemFilesystem volume name: /bootFilesystem UUID: ecf0ac1b-7956-45d2-ba23-7302c4e02befFilesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recoverysparse_superFilesystem flags: signed directory hashFilesystem state: cleanFilesystem OS type: LinuxFilesystem created: Mon Dec 3 10:47:50 2007[root@fedora-machine1 ~]#

    Adaug linia (hd1) /dev/sdb n fiierul /new_disk/boot/grub/device.map (nuam folosit opiunea recheck pentru c este documentat n man pages astfel: Thisoption is unreliable and its use is strongly discouraged.).

    Instalez GRUB n MBR-ul discului nou.[root@fedora-machine1 ~]# echo "(hd1) /dev/sdb" >> /new_disk/boot/grub/device.map[root@fedora-machine1 ~]# grub-install --root-directory=/new_disk /dev/sdbInstallation finished. No error reported.This is the contents of the device map /new_disk/boot/grub/device.map.Check if this is correct or not. If any of the lines is incorrect,fix it and re-run the script `grub-install'.

    # this device map was generated by anaconda(hd0) /dev/sda(hd1) /dev/sdb[root@fedora-machine1 ~]#

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 15 of 16

    Am terminat cu partiia de boot, urmeaz s mut restul datelor dinVolGroup00. n cazul n care discul care se schimb nu conine partiie de boot, doarpaii urmtori sunt necesari pentru upgrade de disc.

    Pregtesc /dev/sdb2 pentru LVM i includ /dev/sdb2 n VolGroup00.[root@fedora-machine1 ~]# pvcreate /dev/sdb2 Physical volume "/dev/sdb2" successfully created[root@fedora-machine1 ~]# vgextend VolGroup00 /dev/sdb2 Volume group "VolGroup00" successfully extended[root@fedora-machine1 ~]#

    Mut datele din Volgroup00 de pe discul vechi pe discul nou.Aceast operaie este de lung durat, timpul necesar pentru mutarea datelor

    depinde de dimensiunea i viteza de transfer a celor dou discuri.[root@fedora-machine1 ~]# pvmove /dev/sda2 /dev/sdb2 /dev/sda2: Moved: 14.2% /dev/sda2: Moved: 45.0% /dev/sda2: Moved: 49.2% /dev/sda2: Moved: 53.3% /dev/sda2: Moved: 80.8% /dev/sda2: Moved: 100.0%[root@fedora-machine1 ~]#

    Datele au fost mutate pe discul nou, scot /dev/sda2 (discul vechi) dinVolGroup00 i terg LVM metadata pentru a elimina eventualele probleme n cazul ncare voi refolosi acest disc.[root@fedora-machine1 ~]# vgreduce VolGroup00 /dev/sda2 Removed "/dev/sda2" from volume group "VolGroup00"

    [root@fedora-machine1 ~]# pvremove /dev/sda2 Labels on physical volume "/dev/sda2" successfully wiped[root@fedora-machine1 ~]#

    Migrarea datelor pe discul nou s-a terminat, urmeaz s se scoat discul vechidin calculator. Pentru sistemele care nu au discuri hot-swap adugarea/scoatereaacestora este singura operaie care necesit downtime. De asemenea trebuieactivat n BIOS (sau firmware) opiunea de boot de pe noul disk.

    Spaiul liber rmas dup upgrade-ul discului se poate folosi pentru a crea unLV nou (lvcreate) sau pentru a se extinde volumele logice existente (lvextend).

  • LVM (2007-11-28) 2008-01-21.doc 2008 Alin CreuPage 16 of 16