LVM,磁盘故障案例

LVM
在物理卷的基础上组成卷组,在卷组里划分逻辑卷,然后格式化使用,有点是方便扩容和缩容,弊端是若磁盘损坏,数据难找回。
创建lvm逻辑卷
方法:
fdisk命令创建磁盘sdb1,sdb2,sdb3
-p 主磁盘 -t 更改磁盘类型为 8e
pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 创建物理卷
pvdisplay 或pvs 查看创建的物理卷
vgcreate vg1 /dev/sdb1 /dev/sdb2 创建物理卷组vg1,此卷组包含了sdb1和sdb2物理卷
vgdisplay 或vgs 查看创建的物理卷,vgremove 删除卷组命令
lvcreate -L 100M -n lv1 vg1 在物理卷组里创建逻辑卷lv1,指定大小100M
mkfs.ext4 /dev/vg1/lv1 格式化lv1逻辑卷 xfs会影响扩缩容
注:yum install -y lvm 若找不到lvm包时用命令 yum provides " /*/pvcreate" 搜索命令pvcreate的安装包
若找不到物理卷文件可用partprobe命令生成,若pvcreate命令提示无法打开分区请查看磁盘是否挂载
例:

[root@bogon ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4adcd71d

设备 Boot Start End Blocks Id System
[root@bogon ~]# fdisk /dev/sdb 创建分区
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助): n 新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p 创建主分区
分区号 (1-4,默认 1): 1 1号分区
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): +2G 分区容量2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助): t 指定分区类型
已选择分区 1 指定1号分区类型
Hex 代码(输入 L 列出所有代码): 8e 指定1号分区类型为83
已将分区“Linux”的类型更改为“Linux LVM” 指定成功,LVM类型分区

命令(输入 m 获取帮助): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2): 2
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039): +1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助): t
分区号 (1,2,默认 2): 2
Hex 代码(输入 L 列出所有代码): 8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3): 3
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039): +2G
分区 3 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助): t
分区号 (1-3,默认 3): 3
Hex 代码(输入 L 列出所有代码): 8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助): wq 保存分区并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@bogon ~]# yum install -y lvm 安装lvm软件包
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
updates/7/x86_64/primary_db | 6.9 MB 00:00:01
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
没有可用软件包 lvm。 找不到lvm软件包
错误:无须任何处理
[root@bogon ~]# yum provides "/*/pvcreate" 用yum provides命令查pvcreate命令的软件包
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.lzu.edu.cn
* updates: mirror.bit.edu.cn
base/7/x86_64/filelists_db | 6.7 MB 00:00:01
extras/7/x86_64/filelists_db | 709 kB 00:00:00
updates/7/x86_64/filelists_db | 4.2 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 找到包名称为lvm2
源 :base
匹配来源:
文件名 :/usr/sbin/pvcreate
7 :lvm2-2.02.171-8.el7.x86_64 : Userland logical volume management tools 找到包名称为lvm2
源 :@base
匹配来源:
文件名 :/usr/sbin/pvcreate
[root@bogon ~]# yum install -y lvm2 安装lvm2
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.lzu.edu.cn
* updates: mirror.bit.edu.cn
软件包 7:lvm2-2.02.171-8.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@bogon ~]# pvcreate /dev/sdb1 创建sdb1物理卷
WARNING: ext3 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext3 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@bogon ~]# pvcreate /dev/sdb2 创建sdb2物理卷
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb2.
Physical volume "/dev/sdb2" successfully created.
[root@bogon ~]# pvcreate /dev/sdb3 创建sdb3物理卷
WARNING: xfs signature detected on /dev/sdb3 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb3.
WARNING: xfs_external_log signature detected on /dev/sdb3 at offset 16384 . Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb3.
WARNING: xfs_external_log signature detected on /dev/sdb3 at offset 17408 . Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb3.
WARNING: xfs_external_log signature detected on /dev/sdb3 at offset 18432. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb3.
WARNING: xfs_external_log signature detected on /dev/sdb3 at offset 19456. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb3.
WARNING: xfs_external_log signature detected on /dev/sdb3 at offset 20480 . Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb3.
Physical volume "/dev/sdb3" successfully created.
[root@bogon ~]# pvs 查看物理卷容量
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 2.00g 2.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 2.00g 2.00g
[root@bogon ~]# pvdisplay 详细的查看命令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 ieUExc-P0fq-hbuG-QK74-U1R7-SJ6M-xXEwga
"/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 d8M0rY-NgMd-A4By-8oCl-C7nZ-2eEB-csKMys
"/dev/sdb3" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID mOLP9f-BnJN-Nmdr-MVXy-eU2t-Ci8E-x5SsQW
[root@bogon ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
创建物理卷组vg1,包含了物理卷sdb1和sdb2物理卷
Volume group "vg1" successfully created
[root@bogon ~]# vgs 查看物理卷组容量
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 2.99g 2.99g
[root@bogon ~]# vgdisplay 详细的查看命令vgdisplay
--- Volume group ---
VG Name vg1
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
Act PV 2
VG Size 2.99 GiB
PE Size 4.00 MiB
Total PE 766
Alloc PE / Size 0 / 0
Free PE / Size 766 / 2.99 GiB
VG UUID zQCWXu-031o-fnc0-1O92-Bdsp-CQ4T-j0hexh
[root@bogon ~]# lvcreate -L 500M -n lv1 vg1 创建逻辑卷并命名lv1,且指定容量为500M
Logical volume "lv1" created .
[root@bogon ~]# lvs 查看逻辑卷容量
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 500.00m
[root@bogon ~]# lvdisplay 详细查看命令lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID Tq3xFw-gzfL-WARQ-AQka-NbT6-Lv5K-cHjVCK
LV Write Access read/write
LV Creation host, time bogon, 2018-04-11 23:47:25 +0800
LV Status available
# open 0
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@bogon ~]# mkfs.ext4 /dev/vg1/lv1
格式化逻辑卷lv1,并安装ext4文件系统,若安装xfs文件系统,则只能扩容,不支持缩容
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@bogon ~]# mount /dev/vg1/lv1 /sdb3 挂载逻辑卷 lv1 至/sdb3目录下
[root@bogon ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 2.6G 16G 15% /
devtmpfs 907M 0 907M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 8.7M 908M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 84M 58% /boot
tmpfs 184M 0 184M 0% /run/user/1004
/dev/mapper/vg1-lv1 477M 2.3M 445M 1% /sdb3 挂载名称改变了
[root@bogon ~]# ls -l /dev /mapper /vg1-lv1 详细列出两个文件
lrwxrwxrwx. 1 root root 7 4月 11 23:48 /dev/mapper/vg1-lv1 -> ../dm-0
[root@bogon ~]# ls -l /dev/vg1/lv1 详细列出两个文件
lrwxrwxrwx. 1 root root 7 4月 11 23:48 /dev/vg1/lv1 -> ../dm-0
[root@bogon ~]# 两个软链接,指向了同一个文件 ../dm-0

扩容

lvresize -L 800M /dev/vg1/lv1 扩容磁盘至800M
e2fsck -f /dev/vg1/lv1 检查磁盘错误(针对ext执行)
resize2fs /dev/vg1/lv1 更新逻辑卷信息(针对ext执行)

例:
[root@bogon ~]# lvresize -L 800M /dev/vg1/lv1 扩容磁盘
Size of logical volume vg1/lv1 changed from 500.00 MiB (125 extents) to 800.00 MiB (200 extents).
Logical volume vg1/lv1 successfully resized.
[root@bogon ~]# e2fsck -f /dev/vg1/lv1 检查磁盘错误(针对ext执行)
e2fsck 1.42.9 (28-Dec-2013)
/dev/vg1/lv1 is mounted. 提示lv1已挂载,无法检查磁盘
e2fsck: 无法继续 , 中止.

[root@bogon ~]# umount /sdb3 卸载lv1
[root@bogon ~]# e2fsck -f /dev/vg1/lv1 检查磁盘错误(针对ext执行)
e2fsck 1.42.9 (28-Dec-2013)
第一步 : 检查inode,块,和大小
第二步 : 检查目录结构
第3步 : 检查目录连接性
Pass 4 : Checking reference counts
第5步 : 检查簇概要信息
/dev/vg1/lv1: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks
[root@bogon ~]# resize2fs /dev/vg1/lv1 更新逻辑卷信息(针对ext执行)
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 819200 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 819200 blocks long.
[root@bogon ~]# lvs 查看逻辑卷容量
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 800.00m 容量已经更新
[root@bogon ~]#

xfs文件系统的扩容

lvresize -L 800M /dev/vg1/lv1 扩容逻辑卷lv1至800M
xfs_growfs /dev/vg1/lv1 针对xfs文件系统执行,不需要先卸载,得挂载再执行

例:

mkfs.xfs: Use the -f option to force overwrite.
[root@bogon ~]# mkfs.xfs -f /dev/vg1/lv1 将逻辑卷lv1的文件系统改为xfs
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=51200, 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
[root@bogon ~]# lvs 查看逻辑卷lv1容量
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 200.00m
[root@bogon ~]# lvresize -L 800M /dev/vg1/lv1 扩容逻辑卷lv1容量至800M
Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 800.00 MiB (200 extents).
Logical volume vg1/lv1 successfully resized.
[root@bogon ~]# xfs_growfs /dev/vg1/lv1 更新文件系统为xfs的逻辑卷lv1
xfs_growfs: /dev/vg1/lv1 is not a mounted XFS filesystem
[root@bogon ~]# lvs 查看逻辑卷lv1容量
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 800.00m 更新扩容成功
[root@bogon ~]#


缩容(xfs系统不支持)

先卸载逻辑卷
e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext)
resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)
lvresize -L 100M /dev/vg1/lv1 重新设置卷大小
lvdisplay 或 lvs 查看逻辑卷的大小

例:

[root@bogon ~]# umount -l /sdb3 先卸载逻辑卷
umount: /sdb3:未挂载
[root@bogon ~]# e2fsck -f /dev/vg1/lv1 检查磁盘错误
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/203200 files (0.0% non-contiguous), 36417/819200 blocks
[root@bogon ~]# resize2fs /dev/vg1/lv1 200M 缩容逻辑卷lv1容量至200M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 307200 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 307200 blocks long.

[root@bogon ~]# lvresize -L 200M /dev/vg1/lv1 重新设置逻辑卷容量为200M
WARNING: Reducing active logical volume to 200.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 800.00 MiB (200 extents) to 200.00 MiB (50 extents).
Logical volume vg1/lv1 successfully resized.
[root@bogon ~]# lvs 查看逻辑卷lv1容量
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 200.00m 缩容成功
[root@bogon ~]#


扩充卷组
fdisk /dev/sdb 新增/dev/sdb* 并指定为8e类型 (主分区或逻辑分区都可以)
pvcreate /dev/sdb*
vgextend vg1 /dev/sdb*


例:
[root@bogon ~]# vgs 查看物理卷组容量
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz--n- < 2.99g <2.21g
[root@bogon ~]# vgextend vg1 /dev/sdb3 扩容物理卷组
Volume group "vg1" successfully extended
[root@bogon ~]# vgs 查看物理卷组容量
VG #PV #LV #SN Attr VSize VFree
vg1 3 1 0 wz--n- < 4.99g <4.21g
[root@bogon ~]# 扩容成功




磁盘故障案例

LVM,磁盘故障案例_第1张图片

LVM,磁盘故障案例_第2张图片

LVM,磁盘故障案例_第3张图片
在编辑过 /etc/fstab 文件后 可能会导致服务器重启后无法正常进入系统,这是因为在fstab文件里添加的分区/dev/sdb5没有正常挂载导致的。
解决办法:
进入root用户,然后 vi /etc/fstab 按dd删除我们添加的分区,或者用/dev/sdb5分区的UUID来代替分区号,保存再重启。




你可能感兴趣的:(Linux)