四周第一次課(2月26日)
4.13 磁盤故障小案例
4.10 lvm講解(上)
圖講解
兩塊硬盤 A B
A兩個分區 B一個分區 共三個分區
三個分區組成一個物理卷(physical volume)
然後物理卷上面再組成卷組(volume group),卷組1有物理卷1,卷組2有物理卷2,3。 卷組就是物理卷的一個集合。
卷組基礎上劃分邏輯卷,卷組1裏有邏輯卷1,卷組有邏輯卷2,3。
最終在邏輯卷上面進行格式化,再掛載到系統上面使用。
分區準備
fdisk /dev/sdb
n創建三個新分區,分別1G
t改變分區類型為8e
分區操作
# fdisk /dev/sdb
創建1G的主分區,
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
ID為83代表只是普通的分區,如果想使用LVM,需要更改分區ID為8e,8e代表LVM分區
命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區“Linux”的類型更改為“Linux LVM”
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
只有改到這樣,才可以做物理卷
接下來,創建另外兩個主分區,分別也是LVM類型(具體操作跟創建第一個一樣)
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
分區之後,別忘了w保存
#fdisk -l 查看分區是否成功
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
創建物理卷
安裝lvm命令,安裝失敗。
# yum install -y lvm
已加載插件:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
沒有可用軟件包 lvm。
錯誤:無須任何處理
利用#yum通配搜索pvcreate命令
#yum provides "/*/pvcreate"
[root@centos7 ~]# yum provides "/*/pvcreate"
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base/7/x86_64/filelists_db | 6.7 MB 00:00:01
extras/7/x86_64/filelists_db | 636 kB 00:00:00
updates/7/x86_64/filelists_db | 3.5 MB 00:00:01
1:bash-completion-2.1-6.el7.noarch : Programmable completion for Bash
源 :base
匹配來源:
文件名 :/usr/share/bash-completion/completions/pvcreate
7:lvm2-2.02.171-8.el7.x86_64 : Userland logical volume management tools
源 :base
匹配來源:
文件名 :/usr/sbin/pvcreate
查到pvcreate命令來源於lvm2的包,所以安裝這個lvm2即可
#yum install -y lvm2
安裝成功,由於過程太多信息,就不列出。
繼續操作
創建物理卷
(#partprobe命令,生成分區文件,用於系統沒有自動生成文件。)
[root@centos7 ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@centos7 ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@centos7 ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
#pvdisplay 查看物理卷建立狀態。
"/dev/sdb2" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID crs9wx-KFZA-JPde-JwD2-fKnA-M6pi-Ci5kuj
"/dev/sdb3" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5lyipH-eOGt-8je9-N2NQ-82dw-sdqh-RVRbvQ
"/dev/sdb1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ffAd90-QY88-w25I-MSE1-gyA6-FtYc-l4XCyk
4.11 lvm講解(中)
#pvs 同樣也是查看物理卷
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
創建物理卷之後,再創建卷組。
#vgcreate卷組命令,組名 對應盤符
創建卷組
#vgcreate vg1 /dev/sdb1 /dev/sdb2
# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
#vgs 查看卷組信息(#vgdisplay 也可以查看)
vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 1.99g 1.99g
創建卷組之後,創建邏輯卷
#lvcreate -L 100M -n lv1 vg1
指定100M 名字 lv1 從vg1裏面劃分出來
# lvcreate -L 100M -n lv1 vg1
Logical volume "lv1" created.
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 100.00m
# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID AYUXn9-xIp6-Ti6A-JWiI-hcvR-I1X2-PFoyrI
LV Write Access read/write
LV Creation host, time centos7.4-01, 2018-02-26 15:36:16 +0800
LV Status available
# open 0
LV Size 100.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
格式化ext4
#mkfs.ext4 /dev/vg1/lv1 邏輯卷的路徑可以在#lvdisplay查看
掛載到/mnt
[root@centos7 ~]# mount /dev/vg1/lv1 /mnt
[root@centos7 ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
#ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 2月 26 15:40 /dev/vg1/lv1 -> ../dm-0
/dev/vg1/lv1是一個軟鏈接文件,指向../dm-0
創建目錄,文件,寫入內容。
[root@centos7 ~]# mkdir /mnt/1212
[root@centos7 ~]# touch /mnt/23.txt
[root@centos7 ~]# echo "11111" > /mnt/23.txt
擴容邏輯卷
# lvresize 擴容命令 -L指定容量 後面對應盤符路徑(擴容之前,應該先#umount)
# lvresize -L 200M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
Logical volume vg1/lv1 successfully resized.
(如果進行#lvresize時忘記了#umount,可以先#umount再來一次#lvresize也是不影響效果的)
# umount /mnt/
# lvresize -L 200M /dev/vg1/lv1
New size (50 extents) matches existing size (50 extents).
檢查磁盤錯誤
#e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
更新邏輯卷信息
# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 204800 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 204800 blocks long.
掛載
[root@centos7 ~]# !mount
mount /dev/vg1/lv1 /mnt
查看更新後的分區信息,/dev/vg1/lv1 容量比原來增大了
[root@centos7 ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt
檢查設置後文件有沒有受到影響,檢查正常,無任何問題發現,由此證明擴容沒有影響文件。
[root@centos7 ~]# ls /mnt/
1212 23.txt lost+found
[root@centos7 ~]# cat /mnt/23.txt
11111
縮減邏輯卷(xfs不支持)
先umount
#umount /mnt
e2fsck -f /dev/vg1/lv1 檢查磁盤錯誤
# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg1/lv1: 13/49400 files (7.7% non-contiguous), 11887/204800 blocks
resize2fs /dev/vg1/lv1 100M 更新邏輯卷信息(ext)
# resize2fs /dev/vg1/lv1 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 102400 blocks long.
lvresize -L 100M /dev/vg1/lv1 重新設置卷大小
# lvresize -L 100M /dev/vg1/lv1
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 100.00 MiB (25 extents).
Logical volume vg1/lv1 successfully resized.
此處提醒縮減可能會導致文件損壞,選y,後面再檢查。
檢查是否縮減變成了100M
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 100.00m
掛載,檢查文件
#!mount
mount /dev/vg1/lv1 /mnt
[root@centos7 ~]# ls /mnt
1212 23.txt lost+found
[root@centos7 ~]# cat /23.txt
cat: /23.txt: 沒有那個文件或目錄
[root@centos7 ~]# cat /mnt/23.txt
11111
檢查結果,文件可以繼續操作和查看,並無影響,由此證明,縮容沒有影響文件問題。
將/dev/vg1/lv1 格式化為xfs
#umount /mnt
#mkfs.xfs -f /dev/vg1/lv1
# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#!mount
[root@centos7 ~]# touch /mnt/233.txt
[root@centos7 ~]# echo "aaaa" > /mnt/233.txt
[root@centos7 ~]# cat !$
cat /mnt/233.txt
aaaa
[root@centos7 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 100.00m
xfs擴容300M,不需要卸載掛載
[root@centos7 ~]# lvresize -L 300M
No command with matching syntax recognised. Run 'lvresize --help' for more information.
Nearest similar command has syntax:
lvresize -L|--size [+|-]Size[m|UNIT] LV
Resize an LV by a specified size.
[root@centos7 ~]# lvresize -L 300M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
Logical volume vg1/lv1 successfully resized.
[root@centos7 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 300.00m
#df-h 容量沒有更新上去
# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/mapper/vg1-lv1 97M 5.2M 92M 6% /mnt
執行xfs_growfs /dev/vg1/lv1 讓容量更新上去
[root@centos7 ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 25600 to 76800
[root@centos7 ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/mapper/vg1-lv1 297M 5.5M 292M 2% /mnt
4.12 lvm講解(下)
擴展卷組
把sdb3加入卷組vg1
[root@centos7 ~]# vgextend vg1 /dev/sdb3
Volume group "vg1" successfully extended
[root@centos7 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 3 1 0 wz--n- <2.99g <2.70g
容量變為3G,表示添加成功。
4.13 磁盤故障小案例
開機失敗,因為修改了文件錯誤。
這種情況,往往是磁盤掛載錯誤才出現的問題。
直接輸入root的密碼
進入/etc/fstab
dd刪掉最後一行
重啟即可
四周第一次課(2月26日)