1. LVM (Logical Volume Manager)
2. PV (Physical Volume)
與實體硬碟最直接關係,相當於硬碟中的Partition(分割區)
3. VG (Volume Group)
PV1+PV2+PV3+………+=VG
顧名思議就是許多PV整合為一個VG 每個 VG 最多僅能包含 65534 個 PE 而已。 如果使用 LVM 預設的參數,則一個 VG 最大可達 256GB 的容量
4. PE (Physical Extend)
LVM當中儲存資料的地方,換句話說是整個 LVM 最小的儲存區塊。
LVM 預設使用 4MB 的 PE 區塊,而 LVM 的 VG 最多僅能含有 65534 個 PE ,因此預設的 LVM VG 會有 4M*65534/(1024M/G)=256G。
5. LV (Logical Volume) a. 由VG分割成LV
b. 調整LV容量利用PE來達成。
c. LV 的裝置檔名通常指定為『 /dev/vgname/lvname 』的樣式。
1. 觀察系統是否安裝套件,另外Linux核心也必須支援LVM(以下用Centos 5.4版來參考)
觀察套件 [ali@andy ~]$ rpm -qa | grep lvm
lvm2-2.02.46-8.el5_4.2 system-config-lvm-1.1.5-1.0.el5_4.1
核心支援觀察 [ali@andy ~]$ dmesg | grep -i Device-mapper
device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.11.5-ioctl (2007-12-12) initialised: [email protected] device-mapper: dm-raid45: initialized v0.2594l device-mapper: multipath: version 1.0.5 loaded
參考依據:http://sources.redhat.com/dm/
2. LVM需用到的工具程式
[ali@andy ~]$ rpm -ql lvm2
/etc/lvm /etc/lvm/archive /etc/lvm/backup /etc/lvm/cache /etc/lvm/cache/.cache /etc/lvm/lvm.conf /etc/rc.d/init.d/lvm2-monitor /lib/libdevmapper-event-lvm2mirror.so /lib/libdevmapper-event-lvm2mirror.so.2.02 /lib/libdevmapper-event-lvm2snapshot.so /lib/libdevmapper-event-lvm2snapshot.so.2.02 /sbin/lvm /sbin/lvm.static /sbin/pvscan /sbin/vgchange /sbin/vgscan /usr/include/lvm2cmd.h /usr/lib/liblvm2cmd.a /usr/lib/liblvm2cmd.a.2.02 /usr/lib/liblvm2cmd.so /usr/lib/liblvm2cmd.so.2.02 /usr/sbin/fsadm /usr/sbin/lvchange /usr/sbin/lvconvert /usr/sbin/lvcreate ~略~
3. 以下整理常用的工具指令
功能 | PV階段 | VG階段 | LV階段 |
搜尋(scan) | pvscan | vgscan | lvscan |
建立(create) | pvcreate | vgcreate | lvcreate |
列出(display) | pvdisplay | vgdisplay | lvdisplay |
增加(extend) | 空 | vgextend | lvextend(lvresize) |
減少(reduce) | 空 | vgreduce | lvreduce |
刪除(remove) | pvremove | vgremove | lvremove |
改變容量(resize) | 空 | 空 | lvresize |
改變屬性(attribute) | pvchange | vgchange | lvchange |
(資料來源:鳥哥Linux私房菜 http://linux.vbird.org/)
1. 圖示分析
資料來源:鳥哥Linux私房菜 http://linux.vbird.org/)
2. 大致步驟(以VirtualBox來模擬LVM過程)
i.利用fdisk工具來分割3獨立硬碟(或分割區)及改變System ID 為8e ii.利用pvcreate把3個獨立硬碟建立成PV iii利用vgcreate整合2顆各為512MB成為VG iiii利用lvcreate把整合好的VG成為LV iiiii格式化LV來建立檔案系統並掛載起來(mount)
建立8e System_Id
[root@localhost]# fdisk -l
[root@localhost]# fdisk /dev/hdb(中間過程過程略)
[root@localhost]# fdisk /dev/hdc(中間過程過程略)
[root@localhost]# fdisk /dev/hdd(中間過程過程略)
再觀察是否班更為8e
3.針對/dev/hdb1及/dev/hdc建立PV
[root@localhost]#pvcreate /dev/hdb1
[root@localhost]#pvcreate /dev/hdc1
4.建立VG.把/dev/hdb1及/dev/hdc1合併並命名為testvg
[root@localhost]#vgcreate -s 16M testvg /dev/hdb1 —>指定每個PE為16MB 且命名為 testvg
[root@localhost]#vgcreate -s 16M testvg /dev/hdc1 —>指定每個PE為16MB 且命名為 testvg
[root@localhost]#vgdisplay testvg —→觀看total PE的數目,這個數目值要被LV相關指令所使用
5.利用lvcreate分割testvg為LV
[root@localhost]#lvcreate -l +62 -n testlv testvg
[root@localhost]#lvdisplay
以下第一個紅框為新建立lv的裝置名稱為(/dev/testvg/testlv)
以下第二個紅框為lv容量
6.格式化lv及掛載
[root@localhost]#mkfs.ext3 /dev/testvg/testlv
[root@localhost]#mount /dev/testvg/testlv /mnt/lvm
[root@localhost]#df -h
現在要外加1GB的硬碟/dev/hdd1
1.先分割成PV
[root@localhost]#pvcreate /dev/hdd1
2.利用vgextend指令加入testvg
[root@localhost]#vgextend testvg /dev/hdd1
3.觀看/dev/hdd1 加入testvg的使用容量
[root@localhost]#vgdisplay testvg
多增加了63個PE(/dev/hdd1)
4.增加63個PE到lv及觀看其容量變化
[root@localhost]#lvextend -l +63 /dev/testvg/testlv
[root@localhost]#lvdisplay /dev/testvg/testlv
5.格式化增加的部份(額外做一個實驗,先增加幾個檔案到目前的/mnt/lvm中)
[root@localhost]#touch test{1..5}
[root@localhost]#lvextend -l +63 /dev/testvg/testlv
[root@localhost]#resize2fs /dev/testvg/testlv
[root@localhost]#mount /dev/testvg/testlv /mnt/lvm
[root@localhost]#df -h