LVM基本術語linux
LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上創建文件系統。centos
物理存儲介質(The physical media):這裏指系統的存儲設備:硬盤,如:/dev/hda一、/dev/sda等等,是存儲系統最低層的存儲單元。ide
物理卷(physical volume,PV)物理卷就是指硬盤分區或從邏輯上與磁盤分區具備一樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。工具
卷組(VolumeGroup,VG)LVM卷組相似於非LVM系統中的物理硬盤,其由物理卷組成。能夠在卷組上建立一個或多個「LVM分區」(邏輯卷),LVM卷組由一個或多個物理卷組成。佈局
邏輯卷(logical volume,LV)LVM的邏輯卷相似於非LVM系統中的硬盤分區,在邏輯卷之上能夠創建文件系統(好比/home或者/usr等)。學習
PE(physical extent, PE)每個物理卷被劃分爲稱爲PE(PhysicalExtents)的基本單元,具備惟一編號的PE是能夠被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。ui
LE(logical extent,LE)邏輯卷也被劃分爲被稱爲LE(LogicalExtents)的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,而且一一對應。spa
個人centos系統默認沒有安裝lvm安裝包! 可使用命令:yum install lvm2 進行安裝!!!!.net
一、建立分區類型爲8e的分區code
使用分區工具(如:fdisk等)建立LVM分區,方法和建立其餘通常分區的方式是同樣的,區別僅僅是LVM的分區類型爲8e。
爲了後期便於維護管理,記得給分區加上標示,這樣即便你不在的狀況下,別人看到標示了就不會輕易動這塊區域了. LVM的標識是8e,設置完成後記得按w保存
你們看見 The new table will be used at the next reboot沒?意思就是這個分區在下次啓動的時候才能使用,咱們可使用一個命令,讓這個分區立刻生效哈~
輸入 #partprobe ( yum -y install parted )
若是報錯(Warning: WARNING: the kernel failed to re-read the partition table on /dev/xvda (Device or resource busy). As a result, it may not reflect all of your changes until after reboo)
執行下面的參數:
sudo cat /proc/partitions
partx -a /dev/xvda
sudo cat /proc/partitions
二、建立物理卷PV (physical volume)
建立物理卷的命令爲pvcreate,利用該命令將但願添加到卷組的全部分區或者磁盤建立爲物理卷。
[root@linux~]$pvcreate /dev/sdb1 /dev/sdb2 添加兩個分區爲物理卷
[root@linux~]$pvcreate/dev/hda7 添加一個分區爲物理卷
三、建立卷組VG (volume group)
建立卷組的命令爲vgcreate,將使用pvcreate創建的物理卷建立爲一個完整的卷組:
[root@linux~]$vgcreate vgdata /dev/sdb1 /dev/sdb2 #vgdata是卷組的名字,自定義
四、建立邏輯卷組 (Logical Volume Group)
建立邏輯卷的命令爲lvcreate:
[root@linux~]$ lvcreate -L 500M –n lvdatal vgdata
該命令就在 vgdata卷組 上建立名字爲 lvdatal 的邏輯卷組,大小爲500M的,而且設備入口爲 /dev/vgdate/lvdatal。
五、在邏輯卷組上建立文件系統!!
使用mkfs.ext4命令在邏輯卷lvdatal上建立ext4文件系統.
mkfs.ext4 /dev/vgdate/lvdatal
#mkfs -t ext3 /dev/sdax (這樣也能夠!!)
六、掛載!
在建立好的邏輯卷組上建立好文件系統之後就可一直接掛載使用了!!
命令: mount /dev/vgdata/lvdatal /back #把建立好的邏輯卷組掛載到新建的/back目錄下!
若是ls /back 目錄裏面有lost+found目錄說明掛載的邏輯卷組能夠正常使用了,由於新建的back目錄是不會有lost+found
咱們建立LVM是從物理分區-物理卷pv-卷組vg-邏輯卷-掛載到目錄這個順序來的..
重點來了!!!下面是怎麼隨意改變邏輯卷組的大小!
[root@clear /]# pvdisplay #查看物理卷的信息!! 個人物理卷是由兩個分區(sdb1和sdb2)組成的!!
--- Physical volume --- # 這兩個分區的文件類型爲lvm也就是8e.
PV Name /dev/sdb1
VG Name vgdate
PV Size 1.01 GiB / not usable 3.41 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 258
Free PE 133
Allocated PE 125
PV UUID lu4lvW-GKe1-2I11-ISPM-0aor-UMmE-AjzFPW
--- Physical volume ---
PV Name /dev/sdb2
VG Name vgdate
PV Size 1.01 GiB / not usable 3.44 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 258
Free PE 258
Allocated PE 0
PV UUID g2OdBL-qomg-KWQU-Pb1t-Gz0w-Umkm-U9kn1n
[root@clear /]# vgdisplay #查看卷組的信息!! 卷組vgdate是由物理卷裏面的兩個分區建立的,因此卷組的大小是sdb1和sdb2的和!
--- Volume group ---
VG Name vgdate
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 2.02 GiB
PE Size 4.00 MiB
Total PE 516
Alloc PE / Size 125 / 500.00 MiB
Free PE / Size 391 / 1.53 GiB
VG UUID vb0yv7-xy2Q-EtO5-tiOw-7ddH-9dEm-J2oWev
[root@clear /]# lvdisplay #查看邏輯卷組的信息!! 邏輯卷組lvdatal是在卷組vgdate裏面建立的! 因此邏輯卷組的大小是不可能超過卷組的大小的!!!
--- Logical volume ---
LV Path /dev/vgdate/lvdatal #當邏輯卷組的大小不夠用的時候,能夠不斷增大直到卷組所有沒有剩餘的空間.
LV Name lvdatal #當卷組沒有剩餘的空間了,咱們能夠建立物理卷,而後把物理卷添加到卷組!
VG Name vgdate
LV UUID bYR8Xp-kIS9-u6B5-O3UU-NqVv-ENd2-nEZ4WU
LV Write Access read/write
LV Creation host, time clear.limit, 2013-03-29 02:01:46 +0800
LV Status available
# open 1
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
shijzh增長邏輯卷組容量的時候有兩種狀況!!
一.卷組有空閒容量!
直接經過命令lvextend –L +200M /dev/vgdata/lvdatal 或者 lvextend –l 2.5G /dev/vgdata/lvdatal 給lvdatal增長200M空間
注意: lvextend -l +100%FREE /dev/vgdata/lvdatal 把剩餘的全部空間分給lvdatal邏輯卷組
resize2fs /dev/vgdata/lvdatal 記得使用resize2fs命令來同步文件系統.
二.卷組容量已經用完,這種狀況比較多..
首先 建立8e文件類型的物理分區,並把物理建立成物理卷!
建立屋裏分區省略...
把物理分區建立成物理卷
[root@linux~]$pvcreate /dev/sdb3
而後把物理卷加入須要擴容的卷組 vgdate!
[root@linux~]$ vgextend vgdata /dev/sdb3 #卷組沒有文件系統因此不用同步文件系統!!
使用vgdisplay vgdata 能夠查看vgdata卷組的容量是否增長了!!
而後使用命令 lvextend –L +200M /dev/vgdata/lvdatal 或者 lvextend –l 2.5G /dev/vgdata/lvdatal 給lvdatal增長200M空間
注意: lvextend -l +100%FREE /dev/vgdata/lvdatal 把剩餘的全部空間分給lvdatal邏輯卷組
最後 記得使用 resize2fs /dev/vgdata/lvdatal (resize2fs 命令來同步文件系統).
LVM的刪除!! 刪除和安裝同樣反着來就行了!!從卸載-刪除邏輯卷-刪除卷組vg-刪除物理卷pv-刪除物理分區
卸載 : umount /back
刪除邏輯卷: lvremove /dev/vgdata/lvdatal
刪除卷組:vgremove vgdata
刪除物理卷:pvremove /dev/sdb1
pvremove /dev/sdb2
刪除物理分區: 這個就很少說了!!
以上知識LVM經常使用的增長容量的功能和建立/刪除lvm的具體方法,其它的 縮減邏輯卷組 磁盤損壞轉移數據能夠參考 http://dreamfire.blog.51cto.com/418026/1084729/
---------------工做中遇到的問題--------------------------
Vsphere 虛擬機硬盤擴容步驟;
注意:被擴容的磁盤分區必須是LVM系統管理的分區. 不然沒法對分區擴容.
1:先經過sphere client 或者 vcenter 關閉虛擬機給虛擬機擴容.
2:進入linux系統分區狀況
[root@DFS2 src]# fdisk -l
Disk /dev/sda: 96.6 GB, 96636764160 bytes
255 heads, 63 sectors/track, 11748 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002db15
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 10444 83373056 8e Linux LVM (符合擴容要求)
3:在/dev/sda設備上建立新的主分區,即把新增的容量作成一個新的主分區.
fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action l logical (5 or over) p primary partition (1-4)p Partition number (1-4): 3 First cylinder (2611-3916, default 2611): "enter"Using default value 2611 Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"Using default value 3916 Command (m for help): t Partition number (1-5): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
4:把建立的分區建立成物理卷並加入到卷組.
root@Mega:~# pvcreate /dev/sda3 # Device /dev/sda3 not found (or ignored by filtering). root@Mega:~# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created root@Mega:~# vgdisplay --- Volume group --- VG Name Mega ... VG Size 19.76 Gib root@Mega:~# vgextend Mega /dev/sda3 Volume group "Mega" successfully extended root@Mega:~# pvscan PV /dev/sda5 VG Mega lvm2 [19.76 GiB / 0 free] PV /dev/sda3 VG Mega lvm2 [10.00 GiB / 10.00 GiB free] Total: 2 [29.75 GiB] / in use: 2 [29.75 GiB] / in no VG: 0 [0 ] root@Mega:~# lvdisplay --- Logical volume --- LV Name /dev/Mega/root root@Mega:~# lvextend /dev/Mega/root /dev/sda3 Extending logical volume root to 28.90 GiB Logical volume root successfully resized oot@Mega:~# resize2fs /dev/Mega/rootresize2fs 1.41.12 (17-May-2010) Filesystem at /dev/Mega/root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 2 Performing an on-line resize of /dev/Mega/root to 7576576 (4k) blocks. The filesystem on /dev/Mega/root is now 7576576 blocks long.
學習就學習唄,怎麼還考試?!怎麼人和人之間一點信任都沒有!