您可以通過點擊 右下角 的按鈕 來對文章內(nèi)容作出評價, 也可以通過左下方的 關注按鈕 來關注我的博客的最新動態(tài)。 如果文章內(nèi)容對您有幫助, 不要忘記點擊右下角的 推薦按鈕 來支持一下哦 如果您對文章內(nèi)容有任何疑問, 可以通過評論或發(fā)郵件的方式聯(lián)系我: 501395377@qq.com / lzp501395377@gmail.com如果需要轉載,請注明出處,謝謝??!
在上一篇隨筆里面 Linux學習之CentOS(二十五)--Linux磁盤管理:LVM邏輯卷基本概念及LVM的工作原理,詳細的講解了Linux的動態(tài)磁盤管理LVM邏輯卷的基本概念以及LVM的工作原理,包括LVM中最重要的四個基本點(PE、PV、VG以及LV),這篇隨筆將會詳細的講解LVM邏輯卷的創(chuàng)建、使用以及刪除.
一、創(chuàng)建LVM邏輯卷
我們通過圖文并茂的方式來看看如何創(chuàng)建我們的LVM,在上一篇隨筆中,我們已經(jīng)熟悉了LVM的工作原理,首先是要將我們的物理硬盤格式化成PV,然后將多個PV加入到創(chuàng)建好的VG中,最后通過VG創(chuàng)建我們的LV。所以我們第一步就是將我們的物理硬盤格式化成PV(物理卷)
①將物理硬盤格式化成PV(物理卷) 使用的是 pvcreate 命令
這里我已經(jīng)事先虛擬化了3快物理硬盤,每塊硬盤的大小為8G,通過 fdisk -l 命令可以查看
[root@xiaoluo ~]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00093d90 Device Boot Start End Blocks Id System/dev/sda1 1 523 4194304 82 Linux swap / SolarisPartition 1 does not end on cylinder boundary./dev/sda2 * 523 2611 16776192 83 LinuxDisk /dev/sdb: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdc: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdd: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000
這里我們根據(jù)上面圖所示,我們先將 /dev/sdb、 /dev/sdc 兩塊硬盤格式化成PV
[root@xiaoluo ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created
創(chuàng)建完PV以后,我們可以使用pvdisplay(顯示詳細信息)、pvs命令來查看當前pv的信息
[root@xiaoluo ~]# pvdisplay "/dev/sdb" is a new physical volume of "8.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 8.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 93UEEl-cxBU-A4HC-LNSh-jp9G-uU5Q-EG8LM9 "/dev/sdc" is a new physical volume of "8.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 8.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID lH1vul-KBHx-H2C6-wbt1-8AdK-yHpr-bBIul5 [root@xiaoluo ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 8.00g 8.00g /dev/sdc lvm2 a-- 8.00g 8.00g
通過這兩個命令我們可以看到我們已經(jīng)創(chuàng)建好的PV的信息,兩個PV都是8G,目前還沒有使用,PFree都是8G.
②創(chuàng)建卷組(VG),并將PV加入到卷組中 通過 vgcreate 命令
在創(chuàng)建完PV以后,這時候我們需要創(chuàng)建一個VG,然后將我們的PV都加入到這個卷組當中,在創(chuàng)建卷組時要給該卷組起一個名字
[root@xiaoluo ~]# vgcreate xiaoluo /dev/sdb /dev/sdc
Volume group "xiaoluo" successfully created
同樣,在創(chuàng)建好VG以后,我們也可以使用 vgdisplay 或者 vgs 命來來查看VG的信息
[root@xiaoluo ~]# vgdisplay --- Volume group --- VG Name xiaoluo System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 // 當前這里有兩個PV,分別是我們的 /dev/sdb 和 /dev/sdc Act PV 2 VG Size 15.99 GiB // 當前VG的大小 PE Size 4.00 MiB // 通過這個我們也可以看到我們LVM默認的PE大小就是4M Total PE 4094 // 因為VG里面存放的就是各個PV中的PE,所以PE的數(shù)量就是VG大小除以默認PE的大小 Alloc PE / Size 0 / 0 Free PE / Size 4094 / 15.99 GiB VG UUID B8eavI-21kD-Phnm-F1t1-eo4K-wgvg-T5qUbt [root@xiaoluo ~]# vgs VG #PV #LV #SN Attr VSize VFree xiaoluo 2 0 0 wz--n- 15.99g 15.99g
③基于卷組(VG)創(chuàng)建邏輯卷(LV) 通過 lvcreate 命令
因為創(chuàng)建好的PV、VG都是底層的東西,我們上層使用的是邏輯卷,所以我們要基于VG創(chuàng)建我們的邏輯卷才行
[root@xiaoluo ~]# lvcreate -n mylv -L 2G xiaoluo
Logical volume "mylv" created
通過 lvcreate 命令基于VG創(chuàng)建好我們的邏輯卷,名字為mylv,大小為2G,同樣我們可以使用 lvdisplay 或者 lvs 命令來查看創(chuàng)建好的邏輯卷的信息
[root@xiaoluo ~]# lvdisplay --- Logical volume --- LV Path /dev/xiaoluo/mylv // 邏輯卷的路徑 LV Name mylv // 邏輯卷的名字 VG Name xiaoluo // 邏輯卷所屬卷組的名字 LV UUID PYuiYy-WpI6-XZB8-IhnQ-ANjM-lcz0-dlk4LR LV Write Access read/write LV Creation host, time xiaoluo, 2013-05-23 23:45:08 +0800 LV Status available # open 0 LV Size 2.00 GiB // 邏輯卷的大小 Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 [root@xiaoluo ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv xiaoluo -wi-a---- 2.00g
這樣子我們的邏輯卷也就已經(jīng)創(chuàng)建好了,我們這個時候再通過 vgs 還有 pvs 命令查看一下我們的PV與VG的信息
[root@xiaoluo mnt]# vgs VG #PV #LV #SN Attr VSize VFree xiaoluo 2 1 0 wz--n- 15.99g 13.99g // 我們看到LV的數(shù)量此時變成了1,因為我們剛創(chuàng)建好了一個LV,LVFree還有14G
[root@xiaoluo mnt]# pvs PV VG Fmt Attr PSize PFree /dev/sdb xiaoluo lvm2 a-- 8.00g 6.00g // 剛創(chuàng)建好的LV用的是 /dev/sdb 這塊硬盤的,所以這塊硬盤的PFree還剩下6G /dev/sdc xiaoluo lvm2 a-- 8.00g 8.00g
我們發(fā)現(xiàn),當我們每創(chuàng)建完一個LV時,VG與PV的信息都是時時在變化的,并且我們創(chuàng)建LV的大小是根據(jù)當前VG的大小來決定的,不能超過當前VG的剩余大??!
我們在上一篇隨筆里面有講過,每創(chuàng)建好一個邏輯卷,都會在 /dev 目錄下出現(xiàn)一個以該卷組命名的文件夾,基于該卷組創(chuàng)建的所有的邏輯卷都是存放在這個文件夾下面,我們可以查看一下
[root@xiaoluo ~]# ls /dev/xiaoluo/mylv
/dev/xiaoluo/mylv
我們每創(chuàng)建一個新的邏輯卷,該VG目錄下都會多出這么一個設備。
二、格式化并使用我們的邏輯卷
我們已經(jīng)創(chuàng)建好了我們的PV、VG以及LV,這時候我們?nèi)绻褂眠壿嬀?,就必須將其格式化成我們需要用的文件系統(tǒng),并將其掛載起來,然后就可以像使用分區(qū)一樣去使用邏輯卷了
[root@xiaoluo ~]# mkfs.ext4 /dev/xiaoluo/mylv
mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks131072 inodes, 524288 blocks26214 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=53687091216 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: done Creating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 31 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.
格式化我們的邏輯卷以后,就可以使用 mount 命令將其進行掛載,我們將其掛載到 /mnt 目錄下
[root@xiaoluo ~]# mount /dev/xiaoluo/mylv /mnt
[root@xiaoluo ~]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)/dev/mapper/xiaoluo-mylv on /mnt type ext4 (rw)
[root@xiaoluo ~]# cd /mnt/[root@xiaoluo mnt]# lslost+found[root@xiaoluo mnt]# touch xiaoluo.txt[root@xiaoluo mnt]# lslost+found xiaoluo.txt
我們看到,我們的卷組已經(jīng)掛載好了,并且可以像使用分區(qū)一樣來對其進行文件操作了。
三、刪除邏輯卷
我們在創(chuàng)建好邏輯卷后可以通過創(chuàng)建文件系統(tǒng),掛載邏輯卷來使用它,如果說我們不想用了也可以將其刪除掉。
【注意:】對于創(chuàng)建物理卷、創(chuàng)建卷組以及創(chuàng)建邏輯卷我們是有嚴格順序的,同樣,對于刪除邏輯卷、刪除卷組以及刪除物理卷也是有嚴格順序要求的
①首先將正在使用的邏輯卷卸載掉 通過 umount 命令
②將邏輯卷先刪除 通過 lvremove 命令
③刪除卷組 通過 vgremove 命令
④最后再來刪除我們的物理卷 通過 pvremove 命令
[root@xiaoluo /]# mount /dev/xiaoluo/mylv /mnt/
[root@xiaoluo /]# umount /mnt/[root@xiaoluo /]# lvremove /dev/xiaoluo/mylv Do you really want to remove active logical volume mylv? [y/n]: y Logical volume "mylv" successfully removed[root@xiaoluo /]# vgremove xiaoluo Volume group "xiaoluo" successfully removed[root@xiaoluo /]# pvremove /dev/sdb Labels on physical volume "/dev/sdb" successfully wiped
此時我們的剛創(chuàng)建的邏輯卷 mylv,卷組 xiaoluo以及物理卷 /dev/sdb 已經(jīng)從我們當前操作系統(tǒng)上刪除掉了,通過 lvs、vgs、pvs命令可以查看一下
[root@xiaoluo /]# lvs No volume groups found // 邏輯卷已經(jīng)沒有了
[root@xiaoluo /]# vgs No volume groups found // 卷組也沒有了
[root@xiaoluo /]# pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 a-- 8.00g 8.00g // sdb物理卷已經(jīng)沒有了,只剩下 sdc物理卷了
本篇隨筆詳細講解了LVM邏輯卷的創(chuàng)建、使用及刪除,在下一篇隨筆里我們將繼續(xù)講解LVM邏輯卷的知識,包括如何對邏輯卷進行動態(tài)的拉伸以及對其進行壓縮?。?!
聯(lián)系客服