《LINUX學習:LVM邏輯卷管理》要點:
本文介紹了LINUX學習:LVM邏輯卷管理,希望對您有用。如果有疑問,可以聯系我們。
LVM邏輯卷管理,在實際環境中被廣泛的應用.使用LVM的最大的好處在與對磁盤分區大小和系統分區結構可以靈活的管理.它可以在服務器上新增加一塊磁盤而做到不改變系統的分區結構,可動態增加邏輯分區大小,也可已在需要備份大量數據時,利用快照卷完成對某一邏輯卷的快照使得在數據備份時確保數據的一致性.所以在大多數場景中對LVM的使用是比較多的,所以在系統安裝時建議使用LVM進行分區管理,LVM的原理上可以簡單理解為是在物理塊上做整合重新劃分成邏輯上的塊,使得在后期管理時可以添加減少其大小,相當于Oracle中表空間一樣,當然在很多資料里都有比較專業的解釋,在此就不做過多的篇幅介紹了.這里就以平時管理使用上比較常用的幾個管理指令來說明.在介紹之前需要提及下是lvm的所有指令都是調用dmsetup來實現管理的,所以也可以通過dmsetup指令來完成LVM邏輯卷管理,只不過dmsetup指令參數太多過于復雜,所以才出現了lvm的管理軟件,這樣使得無論在是在LV還是PV和VG管理上指令統一、便于平時LVM邏輯卷的管理.需要注意的一點是現在的LVM軟件大多都是lvm2,它比LVM做了進一步的改進,所以在LVM邏輯卷管理的過程中需要確保系統中有安裝lvm2,如果沒有安裝可以通過yum或apt等擔保理工具進行安裝.LVM邏輯管理中比較常用的管理使用也比較簡單,在此簡單的舉列說明.
下面就先說一說LVM中的邏輯卷擴容治理:
動態擴容:
[root@localhost ~]# lvextend -L +3G -f -r /dev/VolGroup/LogVol02
#向LogVol02卷中增加3GB的空間并激活,注意如果是3GB則是修改成3GB,這個區別還是很大的且在增加空間時,必要確保VG中有足夠的空間在每次必要修改之可以vgdisplay查看下卷組中詳情
#其中-r參數就是在擴容后增加物理邊界,激活邏輯卷分區
#resize2fs -p /dev/VolGroup/LogVol02
增加新邏輯卷:
lvcreate -L 200G -n LogVol02 VolGroup
#在VolGroup卷組內創建一個新的邏輯卷
mkfs.ext4 /dev/VolGroup/LogVol02
mount /dev/VolGroup/LogVol02 /data
#格式化后掛載新的邏輯卷
lvremove /dev/VolGroup/Vol01
?
移除操作:
#刪除邏輯卷
vgremove VolGroup
#刪除卷組,做這個刪除操作之前必要注意是否有數據,應做好相應的備份,一旦刪除數據是無法找回的
?
邏輯卷改名:
lvscan
#在操作前必要lvscan查看下邏輯卷的名字
lvrename /dev/VolGroup/LogVol01 /dev/VolGroup/Lv_root改名,在改后還必要去/etc/fstab文件中修改,這樣在下次重啟服務器是系統的磁盤分區能正確的自動掛載當然如果是修改LVM下的/目錄或者是swap目錄的話,還必要去修改引導文件,如CentOS 6中的grub.conf文件
?
LVM邏輯卷組中加新磁盤:
先創建格式化新磁盤分區,并且創建LVM:
?
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xb5a0e535.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
?
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
?
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): p
?
Disk /dev/sdb: 53.7 GB, 53687091200 bytes
64 heads, 32 sectors/track, 51200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb5a0e535
?
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
?
Command (m for help): n
Command action
? e? extended
? p? primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-51200, default 1):?
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-51200, default 51200):?
Using default value 51200
?
Command (m for help): p
?
Disk /dev/sdb: 53.7 GB, 53687091200 bytes
64 heads, 32 sectors/track, 51200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb5a0e535
?
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? ? 1? ? ? 51200? ? 52428784? 83? Linux
?
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
?
Command (m for help): p
?
Disk /dev/sdb: 53.7 GB, 53687091200 bytes
64 heads, 32 sectors/track, 51200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb5a0e535
?
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? ? 1? ? ? 51200? ? 52428784? 8e? Linux LVM
?
Command (m for help): w
The partition table has been altered!
?
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# mkfs.ext4 /dev/sdb1#格式化分區
[root@localhost ~]# pvcreate /dev/sdb1#創建物理卷,創建好后可以使用pvscan查看
[root@localhost ~]# vgextend VolGroup /dev/sdb1把創建過物理卷的分區添加至邏輯卷組內
? 在此LVM中的比較常用的擴容還有創建新的邏輯卷組等相關操作,總之使用辦法都大致差不錯,在此不做一一的介紹了,下面就開始說一說LVM中的收縮,需要注意的是LVM的收縮是和擴容不同的,在做LVM的磁盤收縮時是無法做到分區在線動態擴容的,在做LVM的的收縮之前需要先umount邏輯卷分區然后在做相應的磁盤檢查操作后才能縮減,所以,如果在做/目錄分區縮減時是無法在服務器在線縮減,必須系統的救援模式下進行,因此在做LVM邏輯卷分區縮減前需要注意,操作流程也不復雜就是擴容的相反的步驟:
[root@localhost ~]# umount /dev/VolGroup/Lv_data
[root@localhost ~]# e2fsck -f /dev/VolGroup/Lv_data#強制質檢磁盤
[root@localhost ~]# resize2fs /dev/VolGroup/Lv_data -10G#先減小文件分區的大小
[root@localhost ~]# lvreduce -L -10G /dev/VolGroup/Lv_data#最后在縮減卷組
[root@localhost ~]# mount -a
? 這樣就是LVM中邏輯卷中比擬常用的擴容、縮減的管理,除這兩者之外還有一個比擬特殊且實用的功能——快照卷,在平時需要做大批量數據備份時就比擬實用的一種方式,利用快照卷可以做到不停止相應的業務情況下來進行數據的備份:
[root@localhost ~]# lvcreate -s -L 5G -n Lv_local_backup -p r /dev/mapper/VolGroup-Lv_local?
? Logical volume "Lv_local_backup" created.
? #建立一個5G大小的只讀快照卷,快照卷的大小必須要大于等于Used,不然創建出來的快照卷沒有實際意義
[root@localhost ~]# mount /dev/VolGroup/Lv_local_backup /mnt/
mount: block device /dev/mapper/VolGroup-Lv_local_backup is write-protected, mounting read-only
在實際生產環境中可以用根據實際情況創建相應邏輯分區的快照卷用來做數據備份,在備份完相應數據或者是不消時可以刪除:
[root@localhost /]# umount /mnt/
[root@localhost mnt]# lvscan?
? ACTIVE? ? ? ? ? ? '/dev/VolGroup/Lv_root' [10.27 GiB] inherit
? ACTIVE? ? ? ? ? ? '/dev/VolGroup/Lv_data' [5.16 GiB] inherit
? ACTIVE? Original '/dev/VolGroup/Lv_local' [5.11 GiB] inherit
? ACTIVE? Snapshot '/dev/VolGroup/Lv_local_backup' [5.00 GiB] inherit
? [root@localhost mnt]# lvremove /dev/VolGroup/Lv_local_backup
Do you really want to remove active logical volume Lv_local_backup? [y/n]: y
? Logical volume "Lv_local_backup" successfully removed
本文永遠更新鏈接地址:
《LINUX學習:LVM邏輯卷管理》是否對您有啟發,歡迎查看更多與《LINUX學習:LVM邏輯卷管理》相關教程,學精學透。維易PHP學院為您提供精彩教程。