歡迎您光臨本站 註冊首頁

linux LVM配置3

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

這裡我續上一章日誌《linux LVM配置2》講解一下LVM的快照功能

LVM的系統快照

現在你知道 LVM 的好處咯,未來如果你有想要增加某個 LVM 的容量時,就可以透過這個放大、縮小的功能來處理.

那麼 LVM 除了這些功能以外,還有什麼能力呢?其實他還有一個重要的能力,那就是系統快照 (snapshot).

什麼是系統快照啊?快照就是將當時的系統信息記錄下來,就好像照相記錄一般! 未來若有任何資料更動了,則原始資料會被搬移到快照區,沒有被更動的區域則由快照區不文件系統共享. 用講的好像很難懂,我們用圖解說明一下好了:

左圖為最出建置系統快照區的狀況,LVM 會預留一個區域 (左圖的左側三個 PE 區塊) 作為數據存放處. 此時快照區內並沒有任何數據,而快照區與系統區共享所有的 PE 數據, 因此你會看到快照區的內容不文件系統是一模一樣的. 等到系統運作一陣子后,假謳 A 區域的數據被更動了 (上面右圖所示),則更動前系統會將該區域的數據移動到快照區, 所以在右圖的快照區被佔用了一塊

PE 成為 A,而其他 B I 的區塊則還是與文件系統共享!

照這樣的情況來看,LVM 的系統快照是非常棒的“備份工具”,他只有備份有被更動到的數據, 文件系統內沒有被變更的數據依舊保持在原本的區塊內,但是 LVM 快照功能會知道那些數據放置在哪裡, 因此“快照”當時的文件系統就得以“備份”下來,且快照所佔用的容量又非常小!

那麼快照區要如何建立與使用呢?,由於快照區與原本的 LV 共享很多PE

區塊,因此快照區與被快照的 LV 必項要在同一個 VG 上面.

下面我就使用我之前刪除的/dev/sdb5 來新建一個快照

  1. [root@CentOS5 ~]#pvcreate /dev/sdb5
  2. [root@CentOS5 ~]#pvscan
  3. PV /dev/sdb6 VG aixevg lvm2 [1.39 GB / 0 free]
  4. PV /dev/sdb7 VG aixevg lvm2 [1.39 GB / 0 free]
  5. PV /dev/sdb8 VG aixevg lvm2 [1.39 GB / 0 free]
  6. PV /dev/sdb9 VG aixevg lvm2 [1.39 GB / 0 free]
  7. PV /dev/sdb5 lvm2 [1.40 GB]
  8. Total: 5 [6.96 GB] / in use: 4 [5.56 GB] / in no VG: 1 [1.40 GB]

添加PVVG

  1. [root@CentOS5 ~]#vgextend aixevg /dev/sdb5

  2. Volume group "aixevg" successfully extended

下面就是創建快照了

創建快照命令格式

  1. [root@CentOS5 ~]#lvcreate -l 89 -s -n aixebak /dev/aixevg/aixelv
  2. -l:後面接用多少PE加入快照中
  3. -s:這是最重要的參數,它表示snapshot,就是快照之意
  4. -n:後面接新建快照名稱,/dev/….則是要被快照的LV完整文件名

  1. [root@CentOS5 ~]#lvcreate -l 89 -s -n aixebak /dev/aixevg/aixelv
  2. Logical volume "aixebak" created

創建好快照之後查看一下LV

  1. [root@CentOS5 ~]#lvdisplay
  2. --- Logical volume ---
  3. LV Name /dev/aixevg/aixelv
  4. VG Name aixevg
  5. LV UUID Mx0CUA-JUxI-dV3Q-9NIV-fvRH-REJP-GcIZQd
  6. LV Write Access read/write
  7. LV snapshot status source of
  8. /dev/aixevg/aixebak [active]
  9. LV Status available
  10. # open 1

  11. LV Size 5.56 GB
  12. Current LE 356
  13. Segments 4
  14. Allocation inherit
  15. Read ahead sectors auto
  16. - currently set to 256
  17. Block device 253:0
  18. --- Logical volume ---
  19. LV Name /dev/aixevg/aixebak
  20. VG Name aixevg
  21. LV UUID 61WaYj-jUXH-ck5R-Rb82-P7eq-GGn0-1Qyr01
  22. LV Write Access read/write
  23. LV snapshot status active destination for /dev/aixevg/aixelv
  24. LV Status available
  25. # open 0
  26. LV Size 5.56 GB
  27. Current LE 356
  28. COW-table size 1.39 GB
  29. COW-table LE 89
  30. Allocated to snapshot 0.00%
  31. Snapshot chunk size 4.00 KB
  32. Segments 1
  33. Allocation inherit
  34. Read ahead sectors auto
  35. - currently set to 256
  36. Block device 253:1

拷貝一下數據到/mnt/lvm


  1. [root@CentOS5 ~]#mount /dev/aixevg/aixelv /mnt/lvm
  2. [root@CentOS5 ~]#cp –a /etc /var /mnt/lvm

接下來我們可以掛載、查看aixebak,可以看到到aixebak有一樣的內容,這就是快照(aixebak)功能,自動備份

  1. [root@CentOS5 ~]#mkdir /mnt/aixebak
  2. [root@CentOS5 ~]#mount /dev/aixevg/aixebak /mnt/aixebak/
  3. [root@CentOS5 ~]#df -h
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/sda2 4.9G 3.4G 1.3G 74% /
  6. /dev/sda5 3.6G 72M 3.4G 3% /date
  7. /dev/sda1 289M 16M 259M 6% /boot
  8. tmpfs 125M 0 125M 0% /dev/shm
  9. /dev/mapper/aixevg-aixelv
  10. 5.4G 587M 4.6G 12% /mnt/lvm
  11. /dev/mapper/aixevg-aixebak
  12. 5.4G 587M 4.6G 12% /mnt/aixebak

我們把

aixebak取消掛載

  1. [root@CentOS5 ~]#umount /mnt/aixebak/
  2. [root@CentOS5 ~]#df -h /mnt/lvm/
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/mapper/aixevg-aixelv
  5. 5.4G 587M 4.6G 12% /mnt/lvm

惡搞下原來要被快照的分區

  1. [root@CentOS5 ~]#rm -rf /mnt/lvm/var/
  2. [root@CentOS5 ~]#cp -a /boot /lib /mnt/lvm/
  3. [root@CentOS5 ~]#lvdisplay /dev/aixevg/aixebak
  4. --- Logical volume ---
  5. LV Name /dev/aixevg/aixebak
  6. VG Name aixevg
  7. LV UUID 61WaYj-jUXH-ck5R-Rb82-P7eq-GGn0-1Qyr01
  8. LV Write Access read/write
  9. LV snapshot status active destination for /dev/aixevg/aixelv
  10. LV Status available
  11. # open 0
  12. LV Size 5.56 GB
  13. Current LE 356
  14. COW-table size 1.39 GB
  15. COW-table LE 89
  16. Allocated to snapshot 5.73%
  17. Snapshot chunk size 4.00 KB
  18. Segments 1
  19. Allocation inherit
  20. Read ahead sectors auto
  21. - currently set to 256
  22. Block device 253:1

上面看到,被快照的區域已經被改動了,然而我們快照依然可以將原來的數據還原出來,下面就快照區域備份原來的數據,然後刪除快照區域

  1. [root@mkk aixebak]# mkdir /backups
  2. [root@mkk aixebak]# mount /dev/aixevg/aixebak /mnt/aixebak/
  3. [root@mkk aixebak]# cd /mnt/aixebak/
  4. [root@mkk aixebak]# tar -jcvf /backups/lvm.tar.bz2 *
  5. [root@CentOS5 ~]#umount /mnt/aixebak/
  6. [root@CentOS5 ~]#lvremove /dev/aixevg/aixebak
  7. Do you really want to remove active logical volume "aixebak"? [y/n]: y
  8. Logical volume "aixebak" successfully removed

下面我們格式化之前被快照的區域,然後還原被惡搞之前的數據

  1. [root@CentOS5 ~]#umount /mnt/lvm/
  2. [root@CentOS5 ~]#mkfs -t ext3 /dev/aixevg/aixelv
  3. [root@CentOS5 ~]#tar -jxvf /backups/lvm.tar.bz2 -C /mnt/lvm/
  4. [root@CentOS5 ~]#cd /mnt/lvm/
  5. [root@mkk lvm]# ls
  6. etc lost found var

從上面我們看到,

LVM快照是可以完全還原之前的數據的,這也是我們用來備份系統的手段

本文出自 「Aixe」 博客,請務必保留此出處http://aixecc.blog.51cto.com/3931677/822911


[火星人 ] linux LVM配置3已經有752次圍觀

http://coctec.com/docs/linux/show-post-46392.html