一,LVM簡介:html
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,至關於一個大硬盤來使用,當硬盤的空間不夠使用的時候,能夠繼續將其它的硬盤的分區加入其中,這樣能夠實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。linux
與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員能夠更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷能夠按須要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也容許按用戶組對存儲捲進行管理,容許管理員用更直觀的名稱(如"sales'、 'development')代替物理磁盤名(如'sda'、'sdb')來標識存儲卷。列如:四個磁盤分區能夠組成一個很大的空間,而後在這些空間上劃分一些邏輯分區,當一個邏輯分區的空間不夠用的時候,能夠從剩餘空間上劃分一些空間給空間不夠用的分區使用。vim
PV(phyical volume):是物理的磁盤分區bash
VG(volume group):LVM中的物理的磁盤分區,也就是PV,必須加入VG,能夠將VG理解爲一個倉庫或者是幾個大的硬盤。app
LV(logical extent):也就是從VG中劃分的邏輯分區ide
二,建立和管理LVM工具
1,建立分區ui
使用分區工具fdisk建立lvm分區,方法和建立其餘通常分區的方法同樣,區別LVM的分區類型爲8e,以下圖查看當前分區spa
使用fdisk建立分區,並進入分區進行管理3d
最後要保存修改
注意:劃分分區的類型爲8e,這是LVM的分區格式。
2,建立PV,以下圖所示: pvcreate /dev/sdb3
查看剛纔建立的命令:pvdisplay(pvs或pvscan)來查看簡略信息。
[root@GJB-UAT ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb3 VolGroup00 lvm2 a-- 100.00g 1020.00m [root@GJB-UAT ~]# pvscan PV /dev/sdb3 VG VolGroup00 lvm2 [100.00 GiB / 1020.00 MiB free] Total: 1 [100.00 GiB] / in use: 1 [100.00 GiB] / in no VG: 0 [0 ]
3,建立和擴展VG(vgcreate VolGroup00 /dev/sdb1)若是有的話直接擴展,沒有的話先建立在擴展
[root@localhost ~]#yum -y install parted
[root@localhost ~]# partprobe (不重啓使分區表有效)
vgdisplay(vgs或vgscan)查看是否建立或擴展成功。
說明:
VG Name VG的名稱
VG Size VG的總大小
PE Size PE的大小,默認爲4MB
Total PE PE的總數量,5114 x 4MB = 19.98GB
Free PE / Size 剩餘空間大小
一樣可使用命令vgs 和vgscan 查看
[root@GJB-UAT ~]# vgs VG #PV #LV #SN Attr VSize VFree VolGroup00 1 1 0 wz--n- 100.00g 1020.00m [root@GJB-UAT ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2
4,建立LV(lvcreate -L +100G -n lv1 VolGroup00)
[root@GJB-UAT ~]# lvcreate -L +100G -n lv1 VolGroup00 Logical volume "lv1" already exists in volume group "VolGroup00"
[root@GJB-UAT ~]# lvdisplay --- Logical volume --- LV Path /dev/VolGroup00/lv1 LV Name lv1 VG Name VolGroup00 LV UUID XX9spD-gBIC-RwNY-V6Tf-xZUp-du0c-Aq4Vln LV Write Access read/write LV Creation host, time GJB-UAT, 2017-03-21 15:15:13 +0800 LV Status available # open 1 LV Size 99.00 GiB Current LE 25344 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
注意:
-L 指定建立的LV 的大小
-l 指定建立的LV 的PE 數量
-n LV的名字
上面的意思是:從VolGroup00卷組中分出100G的空間給lv1使用
使用lvdisplay來進行查看LV的狀況。若是減小的話,只需 lvcreate -L -100G -n lv1 VolGroup00便可。
5,格式化LV( mkfs -t ext3 /dev/VolGroup00/lv1)
[root@localhost ~]# mkfs -t ext3 /dev/VolGroup00/lv1 [root@localhost ~]#mkdir /test [root@localhost ~]#mount /dev/VolGroup00/lv1 /test mount: /dev/mapper/VolGroup00-lv1 already mounted or /test busy mount: according to mtab, /dev/mapper/VolGroup00-lv1 is already mounted on /test [root@GJB-UAT ~]# df -h 文件系統 容量 已用 可用 已用%% 掛載點 /dev/sda2 9.7G 4.4G 4.8G 49% / tmpfs 7.8G 0 7.8G 0% /dev/shm /dev/sda1 194M 27M 158M 15% /boot /dev/sda5 12G 295M 11G 3% /data /dev/mapper/VolGroup00-lv1 98G 19G 74G 21% /test
備註:
能夠看到剛添加的100G容量。若是是原先都有的話,能夠直接擴展就能夠了以下:
[root@localhost ~]# resize2fs /dev/VolGroup/lv_root #執行該重設大小,對於當前正在使用的LogVol01有效
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup/lv_root to 3934208 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 3934208 blocks long.
6,把新分區寫入到配置文件/etc/fstab.若是系統重啓的話就能夠自動加載了。
[root@GJB-UAT ~]#vim /etc/fstab # /etc/fstab # Created by anaconda on Wed Jun 22 17:32:40 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=9100c104-010a-418c-80e7-29e88fd746ce / ext4 defaults 1 1 UUID=d157a57e-325a-459d-ad27-a1ee880ed836 /boot ext4 defaults 1 2 UUID=19c71233-9130-4296-8551-72c05e14e613 /data ext4 defaults 1 2 UUID=a8c629c6-34bc-4c28-92e0-768bf0e0f235 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/lv1 /test ext3 defaults 1 2
經常使用的命令:
[root@iZ23iod5vslZ ~]# blkid /dev/xvda1: UUID="6634633e-001d-43ba-8fab-202f1df93339" TYPE="ext4" /dev/xvdb1: UUID="8c3bc2d1-429c-4c09-a501-6dffbf9250ee" TYPE="ext3" /dev/xvdc1: UUID="2ea5998b-8a44-458d-b1fa-630302dbf212" TYPE="ext4"
備註:
一、擴展磁盤 vgextend myvg /dev/vdc pvs lvextend -l +100%FREE /dev/myvg/mylv lvs resize2fs /dev/myvg/mylv 二、添加新磁盤 485 fdisk /dev/vdb 486 vgcreate myvg /dev/vdb1 487 reboot 488 vgcreate myvg /dev/vdb1 489 lvcreate -l +100%FREE -n lv1 myvg 490 lvs 491 pvs 492 mkfs.xfs /dev/myvg/lv1 493 echo /dev/myvg/lv1 /data/ xfs defaults 0 0 >>/etc/fstab 494 vim /etc/fstab 495 mount -a ############################添加新磁盤 一、劃分分區 [root@PROD-HZ-10880-3:~]16:53:50# fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xae71dee0. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): First sector (2048-419430399, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): Using default value 419430399 Partition 1 of type Linux and of size 200 GiB is set Command (m for help): t Selected partition 1 Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): ps^H Disk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xae71dee0 Device Boot Start End Blocks Id System /dev/vdb1 2048 419430399 209714176 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 二、建立邏輯卷組 vgcreate myvg /dev/vdb1 Physical volume "/dev/vdb1" successfully created. Volume group "myvg" successfully created 三、建立邏輯卷 lvcreate -l +100%FREE -n lv1 myvg Logical volume "lv1" created 四、格式lv1 mkfs.xfs /dev/myvg/lv1 meta-data=/dev/myvg/lv1 isize=512 agcount=4, agsize=13106944 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=52427776, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=25599, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 五、把lv1掛載到/data目錄下 echo /dev/myvg/lv1 /data/ xfs defaults 0 0 >>/etc/fstab 六、掛載全部的卷 mount -a
本文參考:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html