目錄 1. LVM 簡介 2. LVM基本術語 3. LVM的安裝 4. LVM的使用 4.1 物理卷的管理 4.2 卷組的管理: 4.3 邏輯卷的管理: 5. 一個例子 5.1 練習: 5.2 開始部署
1. LVM 簡介LVM邏輯卷管理器(英語:Logical Volume Manager,縮寫為LVM),又譯為邏輯卷宗管理器、邏輯扇區(qū)管理器、邏輯磁盤管理器,是Linux核心所提供的邏輯卷管理(Logical volume management)功能。它在硬盤的硬盤分區(qū)之上,又創(chuàng)建一個邏輯層,以方便系統(tǒng)管理硬盤分區(qū)系統(tǒng)。 由四個磁盤分區(qū)可以組成一個很大的空間,然后在這些空間上劃分一些邏輯分區(qū),我們可以對這些邏輯分區(qū)進行大小調(diào)節(jié), 也可以進行快照備份.
2. LVM基本術語Physical volume(PV): 物理卷就是指硬盤分區(qū)或從邏輯上與磁盤分區(qū)具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(zhì)(如分區(qū)、磁盤等)比較,卻包含有與LVM相關的管理參數(shù)。典型的物理卷是硬盤分區(qū),但也可以是整個硬盤或已創(chuàng)建的Software RAID 卷。 Volume Group(VG): 卷組是LVM中最高抽象層,是由一個或多個物理卷所組成的存儲器池??梢栽诰斫M上創(chuàng)建一個或多個“LVM分區(qū)”(邏輯卷),LVM卷組由一個或多個物理卷組成。 Logical Volume(LV): 邏輯卷相當于非LVM系統(tǒng)中的分區(qū),它在卷組上建立,是一個標準的塊設備,可以在其上建立文件系統(tǒng) Physical Extent (PE): 物理塊, 物理卷按大小相等的“塊”為單位存儲,塊的大小與卷組中邏輯卷塊的大小相同。PE的大小是可配置的,默認為4MB。 3. LVM的安裝查看lvm2是否已經(jīng)安裝 1 [root@stu ~]# rpm -qa|grep lvm mesa-private-llvm-3.3-0.3.rc3.el6.i686 lvm2-2.02.100-8.el6.i686 lvm2-libs-2.02.100-8.el6.i686 如果沒有返回內(nèi)容, 那么需要進行安裝 1 [root@stu ~]# yum install lvm2 4. LVM的使用如果要創(chuàng)建一個邏輯卷需要經(jīng)過以下三個階段: 4.1 物理卷的管理: pvcreate /path/to/dev: 初始化一個磁盤或分區(qū)創(chuàng)建成為物理卷; pvmove /path/to/dev: 移動該設備上的物理塊到其他設備上.(在移除物理卷時可以使用,防止數(shù)據(jù)丟失) pvscan: 搜索目前系統(tǒng)里面任何具有物理卷的磁盤或分區(qū); pvdisplay: 顯示出目前系統(tǒng)上面的物理卷狀態(tài); pvremove /path/to/pv_dev : 將物理卷移除,讓該分區(qū)不具有物理卷屬性。 4.2 卷組的管理: vgcreate : 創(chuàng)建卷組命令 –s PE大小, 默認4M; vgscan : 搜索系統(tǒng)上面是否有卷組存在 vgdisplay : 顯示目前系統(tǒng)上面的卷組狀態(tài); vgextend : 在卷組內(nèi)添加額外的物理卷; vgreduce : 在卷組內(nèi)移除物理卷; vgchange : 配置卷組是否啟動 (active); vgremove : 刪除一個卷組 4.3 邏輯卷的管理: lvcreate : 創(chuàng)建邏輯卷. lvscan : 查詢系統(tǒng)上面的邏輯卷. lvdisplay : 顯示系統(tǒng)上面的邏輯卷狀態(tài) lvextend : 在邏輯卷里面添加容量. lvreduce : 在邏輯卷里面減少容量. lvremove : 刪除一個邏輯卷. lvresize : 對 LV 進行容量大小的調(diào)整. 5. 一個例子5.1 練習: 1. 創(chuàng)建一個由兩個物理卷組成的大小為20G的卷組myvg, 要求PE大小16M. 2. 在該卷組上創(chuàng)建大小為7G的邏輯卷mylv1, 要求其文件系統(tǒng)為ext4, 塊大小為2048, 3. 開機自動掛載到/users 4. 新建用戶openstack, 其家目錄為/users/openstack, 切換至openstack用戶, 復制一些文件到家目錄中 5. 縮減mylv1到5G大小, 切換到openstack用戶, 確保沒有數(shù)據(jù)丟失 6. 對mylv1創(chuàng)建快照卷snap-mylv1, 并通過其備份數(shù)據(jù)到/tmp/user.tar.bz2;
5.2 開始部署
格式化第一個sdb1 #使用fdisk格式化sdb 1 [root@stu ~]# fdisk /dev/sdb
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'). #創(chuàng)建一個新的分區(qū) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1305, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +8G #調(diào)整分區(qū)格式為LVM 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) #如果忘了代碼,可以輸入l查找LVM格式的代碼 #查看分區(qū)狀況 Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 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: 0x8633d49d
Device Boot Start End Blocks Id System /dev/sdb1 1 1045 8393931 8e Linux LVM #保存退出 Command (m for help): w The partition table has been altered!
Calling ioctl() to re-read partition table. Syncing disks. #格式化并保存退出
準備第二個物理分區(qū)sdc1(12G) 步驟同上: 1 [root@stu ~]# fdisk /dev/sdc
#確認分區(qū)狀況: 1 [root@stu ~]# lsblk
2. 創(chuàng)建物理卷 1 [root@stu ~]# pvcreate /dev/sdb1 /dev/sdc1
1 [root@stu ~]# pvs
#查看物理卷情況 1 [root@stu ~]# pvscan
3. 創(chuàng)建大小為20G的卷組myvg, 要求PE大小16M. 1 [root@stu ~]# vgcreate -s 16M myvg /dev/sdb1 /dev/sdc1
1 [root@stu ~]# vgs
#查看卷組情況 4. 在該卷組上創(chuàng)建大小為7G的邏輯卷mylv1, 要求其文件系統(tǒng)為ext4, 塊大小為2048 1 [root@stu ~]# lvcreate myvg -n mylv1 -L 7G
#在卷組myvg上創(chuàng)建大小為7G的邏輯卷mylv1 1 [root@stu ~]# fdisk /dev/myvg/mylv1
#在邏輯卷上創(chuàng)建分區(qū) 1 [root@stu ~]# mke2fs -t ext4 -b 2048 /dev/myvg/mylv1 #格式化邏輯卷mylv1為ext4文件系統(tǒng)塊大小2048K 5. 開機自動掛載到/users 1 [root@stu /]# mkdir /users 2 3 [root@stu /]# vim + /etc/fstab #設置開機自動掛載邏輯卷到/users上 #添加/dev/myvg/mylv1 /users ext4 defaults 0 2到/dev/fstab 最后一行 1 [root@stu /]# mount –a #自動掛載
6. 新建用戶openstack, 其家目錄為/users/openstack, 切換至openstack用戶, 復制一些文件到家目錄中 1 [root@stu users]# useradd openstack -d /users/openstack
#新建用戶openstack, 其家目錄為/users/openstack 1 [root@stu users]# su - openstack 2 [root@stu users]# cp -r /etc/* ~/ #切換至openstack用戶, 復制一些/etc/下的文件到家目錄中
7. 縮減mylv1到5G大小, 切換到openstack用戶, 確保沒有數(shù)據(jù)丟失 縮減邏輯卷大小思路: 7.1. 卸載卷, 并執(zhí)行強制檢測 # e2fsck -f /path/to/lv_device 7.2. 縮減邏輯邊界: # resize2fs /path/to/lv_device Size 7.3. 縮減物理邊界: # lvreduce -L [-]Size /path/to/vg_name/lvname 7.4. 驗證是否正常
7.5. 開始實施: 1 [root@stu ~]# umount /dev/myvg/mylv1 #卸載卷 2 [root@stu ~]# e2fsck -f /dev/myvg/mylv1 #強行檢測 3 [root@stu ~]# resize2fs /dev/myvg/mylv1 5G #縮減邏輯邊界到5G 4 [root@stu ~]# lvreduce -L 5G /dev/myvg/mylv1 #縮減物理邊界到 5G 5 [root@stu ~]# lsblk #驗證數(shù)據(jù) 1 [root@stu ~]# mount –a #重新掛載邏輯卷 2 [root@stu ~]# cd /users/openstack/ #驗證數(shù)據(jù) 3 [root@stu openstack]# ll 8. 對mylv1創(chuàng)建快照卷snap-mylv1, 并通過其備份數(shù)據(jù)到/tmp/user.tar.bz2; 1 [root@stu openstack]# lvcreate -s -L 50M -n snap_mylv1 -p r /dev/myvg/mylv1 #建立快照 2 [root@stu openstack]# mount /dev/myvg/snap_mylv1 /media/snap/ #掛載快照 3 [root@stu openstack]# tar -jcf /tmp/user.tar.bz2 /media/snap/openstack/* #建立歸檔
|
|
來自: qweertt4747 > 《Linux》