LVM逻辑卷管理和RAID

LVM逻辑卷管理和RAID
知识要点
LVM概述
LVM管理命令
LVM应用实例
LVM troubleshooting
Raid概述
LVM概述
Logical Volume Manager,逻辑卷管理
对磁盘分区进行管理的一种机制
[root@localhost ~]# rpm -qa | grep lvm
lvm2-2.02.143-7.el6.x86_64
mesa-private-llvm-3.6.2-1.el6.x86_64
lvm2-libs-2.02.143-7.el6.x86_64
是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。
屏蔽了底层磁盘布局,便于动态调整磁盘容量
相对传统分区方式的有下列优点
空间利用率高:硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间
可以在线扩展容量:文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求
文件系统建立在LVM上,可以跨分区,方便使用
可随意定义逻辑卷卷标
/boot分区用于存放引导文件,不能应用LVM机制
LVM概述
LVM机制的基本概念
PV(Physical Volume,物理卷)
处于LVM最底层,可以是整个硬盘或使用fdisk等工具建立的普通分区
包括许多默认4MB大小的PE(Physical Extents,基本单元),PE是PV中可以用于分配的最小存储单元
VG(Volume Group,卷组)
是一个或多个物理卷组合而成的整体,是建立在PV之上的。同一VG中所有PV的PE大小应该相同,当VG被创建后,我们才能正常查看PE的数量 。
LV(Logical Volume,逻辑卷)
从卷组中分割出的一块空间,它是建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。其实LV就是由PE组成的,不过在LV里面这些PE叫做LE。
LE(Logical Extents)
LE是LV中可以用于分配的最小存储单元,与PE大小相同并一一对应
LVM管理命令
功能
物理卷管理
卷组管理
逻辑卷管理
Scan 扫描
pvscan
vgscan
lvscan
Create 建立
pvcreate
vgcreate
lvcreate
Display 显示
pvdisplay
vgdisplay
lvdisplay
Remove 删除
pvremove
vgremove
lvremove
Extend 扩展 Reduce 减少

vgextend vgreduce
lvextend lvresize
建立命令的用法
pvcreate 设备名(硬盘,分区)
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
LVM应用实例
案例描述:
公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据
推荐步骤:
PV --> VG -->LV --> 格式化,挂载使用文件系统
1. 转化物理卷
使用fdisk命令规划两个分区,类型设置为“8e”
/dev/sdb1、/dev/sdc1
使用pvcreate命令转换上述分区为物理卷
2. 创建卷组
使用vgcreate命令创建卷组mail_store
包括物理卷:/dec/sdb1、/dev/sdc1
3. 创建逻辑卷
使用lvcreate命令创建逻辑卷 mail
从卷组mail_store上划出60GB空间
使用mkfs命令创建ext3文件系统
调整LV大小
为逻辑卷扩容
使用lvextend命令为逻辑卷 mail扩充容量
从卷组 mail_store 上再划出10GB给逻辑卷mail
使用resize2fs命令更新文件系统大小
调整逻辑卷大小命令
lvextend -L +大小 /dev/卷组名/逻辑卷名
lvresize -L +/-大小 /dev/卷组名/逻辑卷名
如果要增大逻辑卷,先用增大逻辑卷,再用resize2fs增大文件系统
可以在线增大逻辑卷
给LV扩容:
增加的空间来自lv所在的VG的空闲空间
lv底层的分区或者硬盘可以跨多个
// 查看分区信息
[root@localhost ~]# fdisk -l

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000922f6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   * 1 26 204800 83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26 281 2048000 82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             281 26109 207461376 83  Linux

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
//新建两个硬盘sdb200G,sdc100G
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Jan  4 15:44 /dev/sda
brw-rw----. 1 root disk 8, 1 Jan  4 15:44 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jan  4 15:44 /dev/sda2
brw-rw----. 1 root disk 8, 3 Jan  4 15:44 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jan  4 15:44 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jan  4 15:44 /dev/sdc
//创建PV,两个
[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@localhost ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
 //查看pv
[root@localhost ~]# pvs
 PV VG   Fmt  Attr PSize   PFree  
 /dev/sdb        lvm2 ---- 100.00g 100.00g
 /dev/sdc        lvm2 ---- 200.00g 200.00g
[root@localhost ~]# pvdisplay
 "/dev/sdb" is a new physical volume of "100.00 GiB"
 --- NEW Physical volume ---
 PV Name               /dev/sdb
 VG Name               
 PV Size               100.00 GiB
  Allocatable           NO
 PE Size               0 
  Total PE 0
  Free PE 0
  Allocated PE 0
 PV UUID               o7Pak2-w42B-8IQY-7ygP-s710-Z196-a8Dr7z
 
 "/dev/sdc" is a new physical volume of "200.00 GiB"
 --- NEW Physical volume ---
 PV Name               /dev/sdc
 VG Name               
 PV Size               200.00 GiB
  Allocatable           NO
 PE Size               0 
  Total PE 0
  Free PE 0
  Allocated PE 0
 PV UUID               EByPeb-ens6-svgo-STnn-9heG-1ckL-rrkYS5
 //创建vg  
[root@localhost ~]# vgcreate mail_vg /dev/sdb /dev/sdc
  Volume group "mail_vg" successfully created
[root@localhost ~]# vgdisplay
 --- Volume group ---
 VG Name               mail_vg
  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               299.99 GiB
 PE Size               4.00 MiB
  Total PE 76798
  Alloc PE / Size       0 / 0 
  Free  PE / Size       76798 / 299.99 GiB
 VG UUID               xaJM2J-dWIp-GgSf-caBY-LZrD-HKGQ-xFjM8W
 //创建lv 
[root@localhost ~]# lvcreate -L 10G -n mail_lv mail_vg
  Logical volume "mail_lv" created.
[root@localhost ~]# lvdisplay
 --- Logical volume ---
 LV Path                /dev/mail_vg/mail_lv
 LV Name                mail_lv
 VG Name                mail_vg
 LV UUID 1gIQDH-REfe-EZ2I-0pYc-lA1B-tdd1-M1mqTY
 LV Write Access        read/write
 LV Creation host, time localhost.localdomain, 2019-01-04 15:51:39 +0800
 LV Status              available
 # open                 0
 LV Size                10.00 GiB
  Current LE 2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
 - currently set to     256
  Block device           253:0
 
[root@localhost ~]# ll  /dev/mail_vg/mail_lv
lrwxrwxrwx. 1 root root 7 Jan  4 15:51 /dev/mail_vg/mail_lv -> ../dm-0
[root@localhost ~]# ll /dev/dm*
brw-rw----. 1 root disk 253, 0 Jan  4 15:51 /dev/dm-0
[root@localhost ~]# ll /dev/dm*
brw-rw----. 1 root disk 253, 0 Jan  4 15:51 /dev/dm-0
[root@localhost ~]# ls /dev/mapper/
control  mail_vg-mail_lv
[root@localhost ~]# ls /dev/mapper/ -l
total 0
crw-rw----. 1 root root 10, 58 Jan  4 15:44 control
lrwxrwxrwx. 1 root root      7 Jan  4 15:51 mail_vg-mail_lv -> ../dm-0
[root@localhost ~]# lvs
 LV VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mail_lv mail_vg -wi-a----- 10.00g                                                    
//格式化
[root@localhost ~]# mkfs.ext4 /dev/mail_vg/mail_lv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
//创建
[root@localhost ~]# mkdir /mail
//挂载
[root@localhost ~]# mount /dev/mail_vg/mail_lv /mail
[root@localhost ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/sda3            204074816 2152260 191549488 2% /
tmpfs                   953140 0 953140 0% /dev/shm
/dev/sda1               194241 38688 145313 22% /boot
/dev/mapper/mail_vg-mail_lv
 10190136 23028 9642820 1% /mail
[root@localhost ~]# df -P
Filesystem                  1024-blocks    Used Available Capacity Mounted on
/dev/sda3                     204074816 2152260 191549488 2% /
tmpfs                            953140 0 953140 0% /dev/shm
/dev/sda1                        194241 38688 145313 22% /boot
/dev/mapper/mail_vg-mail_lv    10190136 23028 9642820 1% /mail
//查看UUID
[root@localhost ~]# blkid /dev/mapper/mail_vg-mail_lv
/dev/mapper/mail_vg-mail_lv: UUID="4c4a8e9b-cb19-47a5-9765-b2412

[root@localhost ~]# vim /etc/fstab
//UUID=4c4a8e9b-cb19-47a5-9765-b2412417df8f /mail ext4 defaults 0 0
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# mount -a    //检查格式是否出错



//扩容
[root@localhost ~]# lvextend -L +20G /dev/mail_vg/mail_lv
  Size of logical volume mail_vg/mail_lv changed from 10.00 GiB (2560 extents) to 30.00 GiB (7680 extents).
  Logical volume mail_lv successfully resized.
[root@localhost ~]# lvs
 LV VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mail_lv mail_vg -wi-ao---- 30.00g                                                    
[root@localhost ~]# df -P
Filesystem                  1024-blocks    Used Available Capacity Mounted on
/dev/sda3                     204074816 2152276 191549472 2% /
tmpfs                            953140 0 953140 0% /dev/shm
/dev/sda1                        194241 38688 145313 22% /boot
/dev/mapper/mail_vg-mail_lv    10190136 23028 9642820 1% /mail
[root@localhost ~]# df -Ph
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                    195G  2.1G  183G   2% /
tmpfs                        931M     0 931M   0% /dev/shm
/dev/sda1                    190M   38M  142M  22% /boot
/dev/mapper/mail_vg-mail_lv  9.8G   23M  9.2G   1% /mail
[root@localhost ~]# df -PhT
Filesystem                  Type   Size  Used Avail Use% Mounted on
/dev/sda3                   ext4   195G  2.1G  183G   2% /
tmpfs                       tmpfs  931M     0 931M   0% /dev/shm
/dev/sda1                   ext4   190M   38M  142M  22% /boot
/dev/mapper/mail_vg-mail_lv ext4   9.8G   23M  9.2G   1% /mail
[root@localhost ~]# resize2fs
resize2fs 1.41.12 (17-May-2010)
Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]



//刷新
[root@localhost ~]# resize2fs /dev/mapper/mail_vg-mail_lv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/mail_vg-mail_lv is mounted on /mail; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/mail_vg-mail_lv to 7864320 (4k) blocks.
The filesystem on /dev/mapper/mail_vg-mail_lv is now 7864320 blocks long.

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             195G  2.1G  183G   2% /
tmpfs                 931M     0 931M   0% /dev/shm

如果要缩小逻辑卷,先用resizefs缩小文件系统再缩小逻辑卷
必须先卸载文件系统
步骤:
1、查看文件系统已用空间
2、卸载文件系统
3、强制检查文件系统,确保文件系统处于一致性状态
4、缩小文件系统 resize2fs
5、缩小lv
6、挂载文件系统
注意:lv和文件系统的大小要一致
调整VG大小
调整卷组大小命令
卷组扩容
vgextend 卷组名 物理卷
卷组收缩
查看卷组包含的PV
命令:pvs
vgreduce 卷组名 物理卷
如果某一块磁盘或者分区故障了如何将数据快速转移到相同卷组的其他空间去?
步骤:
1、通过pvmove命令转移空间数据
2、通过vgreduce命令将坏的磁盘或者分区从卷组里面移除。
3、通过pvremove命令将坏的磁盘或者分区从系统中删除掉。
正确的关闭LVM
千万不要在没有关闭LVM的情况下删除分区
正确关闭LVM的步骤
umount卸载lvm文件系统
清除/etc/fstab中LVM的挂载记录
lvremove删除逻辑卷
vgremove删除卷组
pvremove删除物理卷
fdisk修改分区ID
LVM troubleshooting
pv、vg、lv都正常,但文件系统不正常
模拟故障
备份逻辑卷
dd if=/dev/vg0/lv0 of=lv0.bak
模拟对逻辑卷的破坏操作
dd if=/dev/zero of=/dev/vg0/lv0 bs=512 count=4
检查是否能挂载该分区
报错:mount: you must specify the filesystem type
对逻辑卷进行修复
fsck -yt ext3 /dev/vg0/lv0
再次挂载该分区
RAID概述
RAID廉价冗余磁盘阵列
硬件RAID
速度快,性能好,支持热插拔
需专门的RAID磁盘阵列卡,价格昂贵,还需配合相应的驱动
软件RAID
使用mdadm软件仿真磁盘阵列功能
无需专门硬件,性价比较好
设备文件标识是/dev/md0
根据可靠性、性能和成本对RAID划分了等级
RAID0、RAID1、RAID5、RAID6、RAID10、RAID01
常见RAID等级
RAID0:条带(striping)
硬盘数目>=2
读写性能最快,同时读取,硬盘数目越多,读取速度越快
没有冗余
不允许其中的一块盘有故障
空间利用率100%
RAID1:镜像(mirroring)
硬盘数目=2
存储数据一样
两块硬盘的数据相同,允许一块出现故障
存储到一个,同步到另一个
空间利用率50%
一搬用于安装OS
RAID4:带校验的条带
允许坏掉一块,不允许坏掉两块
空间利用率(4-1)/4=75%
RAID5:条带+分布校验
硬盘数目>=3
读写性能较快
有冗余,有校验
最多允许其中的一块盘有故障
空间利用率(n-1)/n n:硬盘数量
更换新硬盘之后,重新写入,此时速度较慢(恢复+写入)
RAID6:条带+分布校验+分布校验
RAID10:镜像+条带
应用最多
RAID1+0
硬盘数目>=4
每两个组合成镜像组,底层先做RAID1,再做RSID0
同时读写,速度快
空间利用率50%
有冗余
一般用于数据库服务器
RAID01:条带+镜像
RAID等级总结
RAID配置总结
级别
RAID0
RAID1
RAID5
RAID10
磁盘数
>=2
2
>=3
>=4
容错功能
较强
读写速度
最快
写入慢
较快
较快
磁盘空间 利用
100%
50%
n-1
50%
1、配置RAID
2、安装OS
RAID卡有缓存,一般以G为单位(2G)
本章总结
弄清逻辑卷管理中PV、VG、LV的概念
熟悉逻辑卷的扩大和缩小的方法
常用RAID的等级和特点
练习
posted @ 2019-01-22 21:21  DBA_zzher  阅读(462)  评论(0编辑  收藏  举报