lvm講解
給新的磁盤創(chuàng)建三個分區(qū),并且將分區(qū)類型改為lvm,否則無法往下實驗
命令(輸入 m 獲取幫助):p
磁盤 /dev/sdb:53.7 GB, 53687091200 字節(jié),104857600 個扇區(qū)
Units = 扇區(qū) of 1 * 512 = 512 bytes
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標簽類型:dos
磁盤標識符:0xa75320d0
? 設備 Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? 2048? ? 4196351? ? 2097152? 83? Linux
/dev/sdb2? ? ? ? 4196352? ? 25167871? ? 10485760? 83? Linux
/dev/sdb3? ? ? ? 25167872? ? 67110911? ? 20971520? 83? Linux
/dev/sdb4? ? ? ? 67110912? 104857599? ? 18873344? ? 5? Extended
圖上已經(jīng)創(chuàng)建好三個分區(qū),但還沒有改為lvm類型的,我輸入t逐步將這三個分區(qū)修改為lvm類型的分區(qū)。
命令(輸入 m 獲取幫助):t
分區(qū)號 (1-5,默認 5):2
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區(qū)“Linux”的類型更改為“Linux LVM”
[root@localhost ~]# fdisk -l
磁盤 /dev/sdb:53.7 GB, 53687091200 字節(jié),104857600 個扇區(qū)
Units = 扇區(qū) of 1 * 512 = 512 bytes
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標簽類型:dos
磁盤標識符:0xa75320d0
? 設備 Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? 2048? ? 4196351? ? 2097152? 8e? Linux LVM
/dev/sdb2? ? ? ? 4196352? ? 25167871? ? 10485760? 8e? Linux LVM
/dev/sdb3? ? ? ? 25167872? ? 67110911? ? 20971520? 8e? Linux LVM
/dev/sdb4? ? ? ? 67110912? 104857599? ? 18873344? ? 5? Extended
/dev/sdb5? ? ? ? 67112960? 104857599? ? 18872320? 83? Linux
最后輸入“w”保存退出即可,這個時候我們可以用fdisk -l再來查看一遍,顯示的結果如剛才一樣,三個分區(qū)都是linux lvm類型的了。
當我們準備好磁盤后,接下來我們就創(chuàng)建物理卷,使用“pvcreate”命令來將分區(qū)好的三個分區(qū)做成物理卷。在使用命令前我們先安裝相關的軟件包,包名叫做“lvm2”。當你不清楚你需要安裝的軟件包名叫什么的時候,可以通過這個軟件的相關命令進行搜索。以下示例;
[root@localhost ~]# yum provides "/*/pvvreate"
[root@localhost ~]# yum -y install lvm2
如果你的系統(tǒng)已經(jīng)安裝了lvm2的軟件包,責無需在安裝。
如果在我們創(chuàng)建好分區(qū)后,系統(tǒng)里沒有生成分區(qū)文件的話,接下來我們需要使用一個命令刷新一下(一般情況下創(chuàng)建后都會自動生成)。
[root@localhost ~]## partprobe
[root@localhost ~]# umount /mnt
[root@localhost ~]# pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
接下來再使用pvcreate命令來處理分區(qū)
Wiping xfs signature on /dev/sdb1.
? Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]#? pvcreate /dev/sdb2
? Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]#? pvcreate /dev/sdb3
? Physical volume "/dev/sdb3" successfully created.
以上就顯示我們已經(jīng)成功將sdb1設置成物理卷了,余下兩個分區(qū)同樣的操作。物理卷設置完成后,我們使用pvdisplay命令來查看一下
"/dev/sdb1" is a new physical volume of "2.00 GiB"
? --- NEW Physical volume ---
? PV Name? ? ? ? ? ? ? /dev/sdb1
? VG Name? ? ? ? ? ? ?
? PV Size? ? ? ? ? ? ? 2.00 GiB
? Allocatable? ? ? ? ? NO
? PE Size? ? ? ? ? ? ? 0?
? Total PE? ? ? ? ? ? ? 0
? Free PE? ? ? ? ? ? ? 0
? Allocated PE? ? ? ? ? 0
? PV UUID? ? ? ? ? ? ? Lurfhs-9j4x-X1jJ-SKWL-iift-9s1e-SzPv3I
除了pvdisplay命令以外,還有pvs命令同樣可以查看,且更加直觀顯示目前物理卷都有哪些。
[root@localhost ~]# pvs
? PV? ? ? ? VG? ? Fmt? Attr PSize? PFree
? /dev/sda2? centos lvm2 a--? <49.00g? ? 0
? /dev/sdb1? ? ? ? lvm2 ---? ? 2.00g? 2.00g
? /dev/sdb2? ? ? ? lvm2 ---? 10.00g 10.00g
? /dev/sdb3? ? ? ? lvm2 ---? 20.00g 20.00g
接下來我們再創(chuàng)建卷組,使用vgcreate命令來創(chuàng)建,以下示例;
[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
? Volume group "vg1" successfully created
[root@localhost ~]# pvdisplay
--- Physical volume ---
? PV Name? ? ? ? ? ? ? /dev/sdb1
? VG Name? ? ? ? ? ? ? vg1
? PV Size? ? ? ? ? ? ? 2.00 GiB / not usable 4.00 MiB
? Allocatable? ? ? ? ? yes
? PE Size? ? ? ? ? ? ? 4.00 MiB
? Total PE? ? ? ? ? ? ? 511
? Free PE? ? ? ? ? ? ? 511
? Allocated PE? ? ? ? ? 0
? PV UUID? ? ? ? ? ? ? Lurfhs-9j4x-X1jJ-SKWL-iift-9s1e-SzPv3I
? --- Physical volume ---
? PV Name? ? ? ? ? ? ? /dev/sdb2
? VG Name? ? ? ? ? ? ? vg1
? PV Size? ? ? ? ? ? ? 10.00 GiB / not usable 4.00 MiB
? Allocatable? ? ? ? ? yes
? PE Size? ? ? ? ? ? ? 4.00 MiB
? Total PE? ? ? ? ? ? ? 2559
? Free PE? ? ? ? ? ? ? 2559
? Allocated PE? ? ? ? ? 0
? PV UUID? ? ? ? ? ? ? mYNhe1-UP2E-6M37-6T27-hYK3-dQP5-1BKiBs
同樣的可以使用vgs這個命令查看。
[root@localhost ~]# pvs
? PV? ? ? ? VG? ? Fmt? Attr PSize? PFree?
? /dev/sda2? centos lvm2 a--? <49.00g? ? ? 0
? /dev/sdb1? vg1? ? lvm2 a--? <2.00g? <2.00g
? /dev/sdb2? vg1? ? lvm2 a--? <10.00g <10.00g
? /dev/sdb3? ? ? ? lvm2 ---? 20.00g? 20.00g
最有創(chuàng)建好了卷組之后我們就可以成功創(chuàng)建邏輯卷了,使用lvcreate命令來操作,以下示例;
-L:指定大小-n:設定名字
[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
? Logical volume "lv1" created.
邏輯卷創(chuàng)建成功后我們就可以將它格式化了,格式類型為ext4
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系統(tǒng)標簽=
OS type: Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一個數(shù)據(jù)塊=1
接著我將它掛載到mnt的目錄下。
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系統(tǒng)? ? ? ? ? ? ? ? 容量? 已用? 可用 已用% 掛載點
/dev/mapper/centos-root? 44G? 4.1G? 40G? 10% /
devtmpfs? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev/shm
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? 8.7M? 3.9G? ? 1% /run
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /sys/fs/cgroup
/dev/sda1? ? ? ? ? ? ? 1014M? 143M? 872M? 15% /boot
tmpfs? ? ? ? ? ? ? ? ? ? 781M? ? 0? 781M? ? 0% /run/user/0
/dev/mapper/vg1-lv1? ? ? 93M? 1.6M? 85M? ? 2% /mnt
接下來學習做一個擴容的操作,首先umount /mnt,然后在執(zhí)行lvresize命令操作;
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1
[root@localhost ~]# !mount
mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系統(tǒng)? ? ? ? ? ? ? ? 容量? 已用? 可用 已用% 掛載點
/dev/mapper/centos-root? 44G? 4.1G? 40G? 10% /
devtmpfs? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev/shm
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? 8.7M? 3.9G? ? 1% /run
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /sys/fs/cgroup
/dev/sda1? ? ? ? ? ? ? 1014M? 143M? 872M? 15% /boot
tmpfs? ? ? ? ? ? ? ? ? ? 781M? ? 0? 781M? ? 0% /run/user/0
/dev/mapper/vg1-lv1? ? ? 190M? 1.6M? 175M? ? 1% /mnt
可以看到,現(xiàn)在lv1 的容量 已經(jīng)變成了190M了,這個時候我們可以看下mnt目下的文件是否還在是否有丟失,
接下來學習縮容的操作,xfs格式的類型是不支持縮容的
先umount /mnt,然后在檢查磁盤錯誤,接著更新邏輯卷信息(比方指定為100M),最后重置邏輯卷的大小
[root@localhost ~]# umount /mnt
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1 100M
[root@localhost ~]# lvresize -L 100M /dev/vg1/lv1
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系統(tǒng)? ? ? ? ? ? ? ? 容量? 已用? 可用 已用% 掛載點
/dev/mapper/centos-root? 44G? 4.1G? 40G? 10% /
devtmpfs? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /dev/shm
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? 8.7M? 3.9G? ? 1% /run
tmpfs? ? ? ? ? ? ? ? ? ? 3.9G? ? 0? 3.9G? ? 0% /sys/fs/cgroup
/dev/sda1? ? ? ? ? ? ? 1014M? 143M? 872M? 15% /boot
tmpfs? ? ? ? ? ? ? ? ? ? 781M? ? 0? 781M? ? 0% /run/user/0
/dev/mapper/vg1-lv1? ? ? 93M? 1.6M? 85M? ? 2% /mnt
磁盤故障小案例
在之前我們學習的操作中有一節(jié),我們操作了更改了fstab的配置文件,所以導致boot啟動的時候檢測不到路徑所以出現(xiàn)的了故障,提示如下,每個人顯示的結果存在差異;
這里我們先輸入root用戶的密碼,然后更改fstab的配置文件即可
/dev/sdb1 /mnt xfs defaults 0 0
將這行刪除