歡迎您光臨本站 註冊首頁

Centos 5.1 Linux LVM邏輯卷標管理指南

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
Centos 5.1 Linux LVM邏輯卷標管理指南 一、前言
  
  每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統分區時,如何精確評估和分配各個硬碟分區的容量,因為系統管理員不但要考慮到當前某個分區需要的容量,還要預見該分區以後可能需要的容量的最大值.因為如果估計不準確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬碟、重新對硬碟分區,然後恢複數據到新分區.
  
  雖然現在有很多動態調整磁碟的工具可以使用,例如PartationMagic等等,但是它並不能完全解決問題,因為某個分區可能會再次被耗盡;另外一個方面這需要重新引導系統才能實現,對於很多關鍵的伺服器,停機是不可接受的,對於添加新硬碟,希望一個能跨越多個硬碟驅動器的文件系統時,分區調整程序就不能解決問題.
  
  因此完美的解決方法應該是在零停機前提下可以自如對文件系統的大小進行調整,可以方便實現文件系統跨越不同磁碟和分區.幸運的是Linux提供的邏輯盤卷管理(LVM,LogicalVolumeManager)機制就是一個完美的解決方案.
  
  LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁碟分區進行管理的一種機制,LVM是建立在硬碟和分區之上的一個邏輯層,來提高磁碟分區管理的靈活性.通過LVM系統管理員可以輕鬆管理磁碟分區,如:將若干個磁碟分區連接為一個整塊的卷組(volumegroup),形成一個存儲池.管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系統.管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁碟存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:「development」和「sales」,而不是使用物理磁碟名「sda」和「sdb」.當系統添加了新的磁碟,通過LVM管理員就不必將磁碟的文件移動到新的磁碟上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁碟即可.


  
  二、LVM基本術語
  
  前面談到,LVM是在磁碟分區和文件系統之間添加的一個邏輯層,來為文件系統屏蔽下層磁碟分區布局,提供一個抽象的盤卷,在盤卷上建立文件系統.我們討論以下幾個LVM術語:
  
  *物理存儲介質(Thephysicalmedia)
  這裡指系統的存儲設備:硬碟,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元.
  
  *物理卷(physicalvolume)
  物理卷就是指硬碟分區或從邏輯上與磁碟分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁碟等)比較,卻包含有與LVM相關的管理參數.
  
  *卷組(VolumeGroup)
  LVM卷組類似於非LVM系統中的物理硬碟,其由物理卷組成.可以在卷組上創建一個或多個「LVM分區」(邏輯卷),LVM卷組由一個或多個物理卷組成.
  
  *邏輯卷(logicalvolume)
  LVM的邏輯卷類似於非LVM系統中的硬碟分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等).
  
  *PE(physicalextent)
  每一個物理卷被劃分為稱為PE(PhysicalExtents)的基本單元,具有唯一編號的PE是可以被LVM定址的最小單元.PE的大小是可配置的,默認為4MB.
  
  *LE(logicalextent)
  邏輯卷也被劃分為被稱為LE(LogicalExtents)的可被定址的基本單位.在同一個卷組中,LE的大小和PE是相同的,並且一一對應. 介紹了LVM接下來我們來做個實驗,虛擬機上添加3塊8g的硬碟,啟動centos 5.1 [root@myadcls ~]# fdisk -l//查看全部添加的硬碟 Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System


/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 268 2048287 82 Linux swap / Solaris
/dev/sda3 269 2610 18812115 83 Linux Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdb doesn't contain a valid partition table Disk /dev/sdc: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdc doesn't contain a valid partition table Disk /dev/sdd: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdd doesn't contain a valid partition table
[root@myadcls ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd //創建pv物理卷
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
Physical volume "/dev/sdd" successfully created
[root@myadcls ~]#
[root@myadcls ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
Physical volume "/dev/sdd" successfully created
[root@myadcls ~]# vgcreate vgtest /sdb /dev/sdc /dev/sdd //創建vgtest名字的卷組
Volume group "vgtest" successfully created
[root@myadcls ~
[root@myadcls ~]# lvcreate -i 3 -I 4 -L 1000M -n lvtest1 vgtest
Rounding size (250 extents) up to stripe boundary size (252 extents)
Logical volume "lvtest1" created
//創建lv, -i參數為採用條帶模式的映射方式創建邏輯卷,該參數的值用於指定所創建的邏輯卷將映射在幾個PV上.
-I參數使用條帶模式時採用的快大小,單位為KB,其值必須是:2N(N>=2), -L參數指定創建邏輯卷的大小,單位為K,M,G,T表示KB,MB.GB TB等.


-n參數用來指定所創建的邏輯卷的名稱,該名稱可以根據需要隨便定義. 在使用-i的時候,一定要確認所指定的pv是沒有完全被分配給任何邏輯卷的,否則將創建失敗,其次若這些PV的大小不等,那麼創建的邏輯卷只能取最小值. 下面用剩餘的空間來創建第二個邏輯卷,通過vgdisplay命令可以查看到卷組的剩餘空間如下: [root@myadcls ~]# vgdisplay
--- Volume group ---
VG Name vgtest
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 23.99 GB
PE Size 4.00 MB
Total PE 6141
Alloc PE / Size 252 / 1008.00 MB
Free PE / Size 5889 / 23.00 GB
VG UUID 0GGQBE-kBOl-QD22-6eWx-J3eW-fGB1-a9ME8F

可以判處free為5889 PE
把空餘的pe空間劃分給另一個邏輯卷. [root@myadcls ~]# lvcreate -l 5889 -n lvtest2 vgtest
Logical volume "lvtest2" created
// -l參數指定邏輯卷的LE的數量,默認為4MB, 大小為4m x 5889=23556MB
接下來創建文件系統: 在邏輯卷上創建文件系統和在分區上創建文件系統方法是一樣的,例如,在邏輯卷上創建ext3日誌文件系統,命令如下 [root@myadcls ~]# lvcreate -l 5889 -n lvtest2 vgtest
Logical volume "lvtest2" created
[root@myadcls ~]# mkfs.ext3 /dev/vgtest/lvtest1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
129024 inodes, 258048 blocks
12902 blocks (5.00%) reserved for the super user


First data block=0
Maximum filesystem blocks=264241152
8 block groups
32768 blocks per group, 32768 fragments per group
16128 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376 Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override. 以上就是Linux下創建邏輯卷的整個步驟
LVM的維護
在LVM日常維護當中,通常要給邏輯卷擴容,添加新的物理卷等操作等. 1.激活卷組,如果不激活不能被訪問的,不過默認是激活的,手動激活如下命令: [root@myadcls ~]# vgchange -a y vgtest//參數解釋 -a 用於設置指定的卷組是否可用,參數y表示激活卷組,若設置成n則表示暫停卷組使用. 2 logical volume(s) in volume group "vgtest" now active
2.為卷組增加新的物理卷,當卷組空間不足時候,可以加入新的物理捲來擴大卷組的容量,這時候可以用去vgextend命令來實現,如下:
[root@myadcls ~] vgextend vgtest /dev/sde
Volume
group "vgtest" successfully extended
其中「/dev/sde」是增加的物理卷,前提要pvcreate來初始化 3.從卷組中移除物理卷
要從一個卷組中移除一個物理卷,要確認移除的物理卷中沒有被任何邏輯卷正在使用,通過pvdisplay命令來查看.
[root@myadcls ~]# pvdisplay /dev/sde
--- Physical volume ---
PV Name /dev/sde
VG Name vgtest
PV Size 8.00 GB / not usable 0
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 2047
Free PE 0
Allocated PE 2047


PV UUID NrrGyd-y0j1-06cD-ZA5l-ipxV-LvvP-YeIB9q 4.如果某個物理卷正在被邏輯卷在使用,就需要將物理卷的數據移動到其它地方,然後移除.移除物理卷的命令為vgreduce vgtest /dev/sde 5.在物理卷間的轉移數據
當發現邏輯卷下的某個磁碟有問題,或者其它需求轉移其中的物理卷的數據時候(如更換大硬碟或更快的物理設備),那麼可通過pvmove來實現物理卷之間轉移數據,例如,將物理卷/dev/sdd上的數據移動到/dev/sde具體步驟如下: pvmove /dev/sdd /dev/sde
其中/dev/sde的大小移動要大於或等於/dev/sdd,其次在使用pvmove前需要modprobe dm-mirror 命令來載入dm-mirror模塊,因為pvmove在轉移數據時候需要用到這個模塊,而默認系統部載入這個模塊的. 6.擴展邏輯卷
在前面提到過,lvm提供了方便的調整邏輯卷大小的功能,擴展邏輯卷的大小事lvextend命令,例如將lvtest2的空間調整為1600m
lvextend -L 1600M /dev/vgtest/lvtest2 也可以在原來的基礎增加相應的大小,如下:
lvextend -L 40M /dev/vgtest/lvtest2 邏輯卷擴展之後並不會馬上生效,需要使用resize2fs命令重新載入邏輯卷的大小,該命令只針對ext2/ext3的文件系統(若是reiserfs的文件系統,則用resize_reiserfs命令),如果該邏輯卷正在使用中,就應該先將該邏輯卷卸載后在執行,resize2fs命令操作如下: umount /dev/vgtest/lvtest2
resize2fs /dev/vgtest/lvtest2 mount /dev/vgtest/lvtest2 /mnt/lvtest2/ 以上這些操作可以通過ext2online命令來直接實現,這樣就不用做卸載邏輯卷等操作了,如下: ext2online /dev/vgtest/lvtest2 7.刪除邏輯卷
刪除邏輯卷前需要將其卸載,其命令為lvremove如下: lvremove /dev/vgtest/lvtest2
y即可卸載成功 8.移除卷組
在移除卷組之前要確認該卷組中已經沒有任何邏輯卷了,或者可以用vgchange手動將卷組停止工作,移除卷組操作如下: vgremove vgtest 9.刪除物理卷 在刪除物理卷前,必須確認該物理卷中已經在卷組中移除了,刪除物理卷的命令如下:


pvremove /dev/sde LVM還可以提供snapshot快照功能,其中快照能夠快速的備份當前邏輯卷中的數據,從而大大減輕了備份數據的負擔,只是目前來說技術還是不成熟.


[火星人 ] Centos 5.1 Linux LVM邏輯卷標管理指南已經有673次圍觀

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