LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,,它是Linux環境下對磁盤分區進行管理的一種機制。node
Linux用戶安裝Linux操做系統時遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。普通的磁盤分區管理方式在邏輯分區劃分好以後就沒法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件由於受上層文件系統的限制,也不能跨越多個分區來存放,因此也不能同時放到別的磁盤上。而遇到出現某個分區空間耗盡時,解決的方法一般是使用符號連接,或者使用調整分區大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨着Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的狀況下能夠方便地調整各個分區大小。vim
LVM模型bash
使用分區 /dev/vdb1 構建 LVM 存儲,相關要求以下:app
LVN基本用法:ide
vgcreate 卷組名 物理設備.. .. lvcreate -L 大小 -n 邏輯卷名 卷組名
步驟:工具
步驟一:建立卷組測試
1)新建名爲systemvg的卷組ui
[root@1 ~]# vgcreate systemvg /dev/vdb1 Physical volume "/dev/vdb1" successfully created Volume group "systemvg" successfully created
2)確認結果spa
[root@1 ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "rhel" using metadata type lvm2
Found volume group "systemvg" using metadata type lvm2
步驟二:建立邏輯卷操作系統
1)新建名爲vo的邏輯卷
[root@1 ~]# lvcreate -L 52M -n vo systemvg Logical volume "vo" created.
2)確認結果
[root@1 ~]# lvscan ACTIVE '/dev/systemvg/vo' [52.00 MiB] inherit
步驟三:格式化及掛載使用
1)格式化邏輯卷/dev/systemvg/vo
[root@1 ~]# mkfs.ext4 /dev/systemvg/vo mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤= OS type: Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 13328 inodes, 53248 blocks 2662 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=33685504 7 block groups 8192 blocks per group, 8192 fragments per group 1904 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
2)掛載邏輯卷/dev/systemvg/vo
[root@1 ~]# mkdir /vo //建立掛載點 [root@1 ~]# mount /dev/systemvg/vo /vo //掛載 [root@1 ~]# df -hT /vo //檢查結果 文件系統 類型 容量 已用 可用 已用% 掛載點 /dev/mapper/systemvg-vo ext4 47M 1.1M 42M 3% /vo
3)訪問邏輯卷/dev/systemvg/vo
[root@1 ~]# echo "I AM KING."> /vo/votest.txt [root@1 ~]# cat /vo/votest.txt I AM KING.
在硬盤vdc建立三個分區,大小依次爲:500MiB、2000MiB、512MiB
而後再基於剛創建的 2000MiB 分區構建新的 LVM 存儲:
基本用法:
vgcreate -s PE大小 卷組名 磁盤分區
lvcreate -l PE個數 -n 邏輯卷名 卷組名
查看磁盤分區
[root@1 ~]# fdisk -l 磁盤 /dev/vdc:8589 MB, 8589934592 字節,16777216 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xf842e899 設備 Boot Start End Blocks Id System /dev/vdc1 2048 1026047 512000 83 Linux /dev/vdc2 1026048 5122047 2048000 83 Linux /dev/vdc3 5122048 6170623 524288 83 Linux
步驟一:新建卷組、邏輯卷
1)新建卷組datastore,指定PE大小爲16MiB
[root@1 ~]# vgcreate -s 16M datastore /dev/vdc2 Physical volume "/dev/vdc2" successfully created Volume group "datastore" successfully created
2)新建邏輯卷database,大小設置爲50個PE
[root@1 ~]# lvcreate -l 50 -n database datastore Logical volume "database" created.
3 ) 確認新建的邏輯卷
[root@1 ~]# lvscan ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
步驟二:格式化及使用邏輯卷
1)格式化邏輯卷/dev/datastore/database
[root@1 ~]# mkfs.ext3 /dev/datastore/database mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 51296 inodes, 204800 blocks 10240 blocks (5.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=209715200 7 block groups 32768 blocks per group, 32768 fragments per group 7328 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
2)配置開機掛載
[root@1 ~]# mkdir /database
[root@1 ~]# vim /etc/fstab
[root@1 ~]# mount -a
[root@1 ~]# df -hT /database/
文件系統 類型 容量 已用 可用 已用% 掛載點
/dev/mapper/datastore-database ext3 772M 828K 731M 1% /database
本例要求沿用練習一,將已有的邏輯卷 vo 的大小調整爲 300MiB,要求以下:
步驟一:確認邏輯卷vo的信息
1)找出邏輯卷所在卷組
[root@1 ~]# lvscan
ACTIVE '/dev/systemvg/vo' [52.00 MiB] inherit
2)查看該卷組的剩餘空間是否可知足擴展須要
[root@1 ~]# vgdisplay systemvg --- Volume group --- VG Name systemvg System ID Format lvm2 Metadata Areas 1 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 1 Act PV 1 VG Size 196.00 MiB //卷組總大小 PE Size 4.00 MiB Total PE 49 Alloc PE / Size 13 / 52.00 MiB Free PE / Size 36 / 144.00 MiB //剩餘空間大小 VG UUID Ab9Mi4-y163-RAVc-82dQ-JYpe-GrEg-9DkxDa
此卷組systemvg的總大小不夠300M,剩餘空間才144M,必須先擴展卷組。
步驟二:擴展卷組
1)將提早準備的分區/dev/vdb3添加到卷組systemvg
[root@1 ~]# vgextend systemvg /dev/vdb3 Physical volume "/dev/vdb3" successfully created Volume group "systemvg" successfully extended
2)確認卷組新的大小
[root@1 ~]# vgdisplay systemvg --- Volume group --- VG Name systemvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 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 5.19 GiB PE Size 4.00 MiB Total PE 1328 Alloc PE / Size 13 / 52.00 MiB Free PE / Size 1315 / 5.14 GiB //剩餘空間大小 VG UUID Ab9Mi4-y163-RAVc-82dQ-JYpe-GrEg-9DkxDa
步驟三:擴展邏輯卷大小
1)將邏輯卷/dev/systemvg/vo的大小調整爲300MiB
[root@1 ~]# lvextend -L 300M /dev/systemvg/vo Size of logical volume systemvg/vo changed from 52.00 MiB (13 extents) to 300.00 MiB (75 extents). Logical volume vo successfully resized.
#上面的命令就實現將邏輯卷systemvg的大小增長248M,原先大小爲52,從而變爲300:lvextend -L +248M /dev/systemvg/vo
2)確認調整結果
[root@1 ~]# lvscan [root@1 ~]# lvscan ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit
3)刷新文件系統大小
確認邏輯卷vo上的文件系統類型:
[root@1 ~]# blkid /dev/systemvg/vo /dev/systemvg/vo: UUID="b6626f8d-a15b-4314-b0b1-2503a1e83e09" TYPE="ext4"
選擇合適的工具刷新大小:resize2fs
[root@1 ~]# resize2fs /dev/systemvg/vo resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/systemvg/vo is mounted on /vo; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 3 The filesystem on /dev/systemvg/vo is now 307200 blocks long.
確認新大小(約等於300MiB):
[root@1 ~]# df -hT /dev/systemvg/vo 文件系統 類型 容量 已用 可用 已用% 掛載點 /dev/mapper/systemvg-vo ext4 288M 2.0M 272M 1% /vo
本例要求爲虛擬機 添加一個交換分區,相關要求以下:
步驟一:格式化交換分區
1)將提早準備的分區/dev/vdb5格式化爲swap文件系統
[root@1 ~]# mkswap /dev/vdb5 正在設置交換空間版本 1,大小 = 524284 KiB 無標籤,UUID=f88b5629-610a-4c19-b721-48578d2b2b12
2)確認格式化結果
[root@1 ~]# blkid /dev/vdb5 /dev/vdb5: UUID="f88b5629-610a-4c19-b721-48578d2b2b12" TYPE="swap"
步驟二:配置交換分區的開機啓用
修改/etc/fstab文件,添加交換分區記錄:
[root@1 ~]# cat /etc/fstab
............. /dev/vdb5 swap swap defaults 0 0
步驟三:確認掛載配置可用
1)檢查啓用新交換分區以前
[root@1 ~]# swapon -s 文件名 類型 大小 已用 權限 /dev/dm-1 partition 2097148 0 -1
2)啓用新交換分區
[root@1 ~]# swapon -a
3)檢查啓用新交換分區以後
[root@1 ~]# swapon -s 文件名 類型 大小 已用 權限 /dev/dm-1 partition 2097148 0 -1 /dev/vdb5 partition 524284 0 -2