一、LVM逻辑卷管理
1. 定义
将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从其中划分出不同的逻辑分区,逻辑分区的大小可以根据需求扩大和缩减
2. LVM概念
PV:物理卷
VG:卷组(可以包含65534个PE)
LV:逻辑卷,真正存储数据的
PV物理卷--->VG卷组--->LV逻辑卷--->格式化--->挂载使用文件系统
3. LVM管理命令
功能物理卷 卷组 逻辑卷
scan(扫描)pvscanvgscanlvscan
create(创建)pvcreatevgcreatelvcreate
display(显示)pvdisplayvgdisplaylvdisplay
remove(移除)pvremovevgremovelvremove
extend(扩充) vgextendlvextend
reduce(减小) vgreducelvreduce
4. 用法
pvcreate 设备名...
vgcreate 卷组名 物理卷...
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名(将VG的PE移动到LV中)
resize2fs /dev/卷组名/逻辑卷名
vgcreate -s 指定PE大小
lvcreate -l PE个数
二、软RAID磁盘阵列管理
1. RAID定义
廉价冗余磁盘阵列,通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘,不仅可用存储数据,还可以对数据提供一定的保护
2. RAID级别
RAID0:条带模式,由二个和二个以上的磁盘组成,同一份文档分散在不同的磁盘中,并行写入提高效率
RAID1:镜像模式,由二个和二个以上的磁盘组成,一份文件会被分别写入到不同的磁盘中,每份磁盘数据一样,提供容错,读效率提高
RAID1+0/RAID0+1:整合RAID0、RAID1的优势。并行存取提高效率。镜像写入提高可靠性
RAID5:结合RAID0和RAID1的好处,同时避免他们的缺点。由三个以上大小相同的磁盘组成,提供冗余
3. RAID实现方式
硬RAID:性能好,需要专门配置RAID卡
软RAID:在Linux中通过软件模拟,效率差
4. 创建软RAID
mdadm -C 阵列名 [选项] 成员盘
-C 创建
-l 指定RAID级别
-n 指定成员盘数量
-x 指定冗余盘数量
-v 显示详细执行过程信息
5. 模拟故障
mdadm 阵列名 [选项] 成员盘
-f 将某个成员盘标记为故障
-r 移除成员盘
-a 添加成员盘
6. 查看RAID阵列
-D 显示详细信息
-E 查看超级快信息
-s 扫描运行中的阵列
7. 启用/停用RAID阵列
mdadm -S 停用
mdadm -A 启用
8. /proc/mdstat 记录运行中阵列的状态
9. /etc/mdadm.conf 存放RAID阵列的固定设置
lvm逻辑卷管理实验
练习一:创建卷组
1)准备3块10G的空闲分区,将类型ID修改为8e (LVM)
2)使用其中2块分区组建名为myvg的卷组,查看此卷组信息
a)先检查有哪些物理卷
b)将两块空闲分区转换成物理卷
c)再检查有哪些物理卷,查看其中一个物理卷的详细信息
d)先查看有哪些卷组
e)将两个物理卷整编成卷组myvg
f)再查看有哪些卷组,并查看卷组myvg的详细信息
#########################################################################
[root@localhost ~]# fdisk -l
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443): +10G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1218-10443, default 1218):
Using default value 1218
Last cylinder or +size or +sizeM or +sizeK (1218-10443, default 10443): +10G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (2435-10443, default 2435):
Using default value 2435
Last cylinder or +size or +sizeM or +sizeK (2435-10443, default 10443): +10G
Command (m for help): p
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): p
Command (m for help): w
[root@localhost ~]#
[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdb2
[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdb2
[root@localhost ~]# pvcreate /dev/sdb3
[root@localhost ~]# vgcreate myvg /dev/sdb[1-2]
[root@localhost ~]# pvscan
[root@localhost ~]# pvscan /dev/sdb1
[root@localhost ~]# vgscan
###########################################################################
练习二:创建/使用/扩展逻辑卷
1)划分一个16G的逻辑卷,名称为lvmbox,查看逻辑卷信息
2)将此逻辑卷格式化为ext3文件系统,并挂载到/mbox目录
3)进入/mbox目录,测试读写操作
4)将逻辑卷从16G扩展为24G,确保df识别的大小准确
a)先扩展卷组(增加一个10G物理卷),再扩展逻辑卷
b)resize2fs识别新文件系统的大小
5)创建一个大小为250M的逻辑卷lvtest
###########################################################################
[root@localhost ~]# lvcreate -L 16G -n lvmbox myvg
[root@localhost ~]# lvscan
[root@localhost ~]# mkfs.ext3 /dev/myvg/lvmbix
[root@localhost ~]# mkdir /mbox
[root@localhost ~]# mount /dev/myvg/lvmbox /mbox
[root@localhost ~]# mount
[root@localhost ~]# cd /mbox
[root@localhost mbox]# touch test.txt
[root@localhost mbox]# ls
lost+found test.txt
[root@localhost mbox]# cd
[root@localhost ~]# pvcreate /dev/sdb3
Writing physical volume data to disk "/dev/sdb3"
Physical volume "/dev/sdb3" successfully created
[root@localhost ~]# vgextend myvg /dev/sdb3
[root@localhost ~]#
[root@localhost ~]# lvextend -L 24G /dev/myvg/lvmbox
Extending logical volume lvmbox to 24.00 GB
Logical volume lvmbox successfully resized
[root@localhost ~]# df -h
[root@localhost ~]# resize2fs /dev/myvg/lvmbox
[root@localhost ~]# df -h
[root@localhost ~]# lvcreate -L 250 -n lvswap myvg
Rounding up size to full physical extent 252.00 MB
Logical volume "lvswap" created
[root@localhost ~]# lvscan
ACTIVE '/dev/myvg/lvmbox' [24.00 GB] inherit
ACTIVE '/dev/myvg/lvswap' [252.00 MB] inherit
[root@localhost ~]#
###########################################################################
练习三:逻辑卷综合应用
1)删除上一练习建立的卷组myvg
2)使用其中2个物理卷组成卷组vgnsd,另一个物理卷组成卷组vgdata
3)从卷组vgnsd中创建一个20G的逻辑卷lvhome
4)从卷组vgdata中创建一个4G的逻辑卷lvswap
5)将/home目录迁移到逻辑卷lvhome上
6)将逻辑卷lvswap扩展到交换空间
7)为第5、6步配置开机自动挂载,重启后验证
###########################################################################
[root@localhost ~]# umount /dev/myvg/lvmbox
[root@localhost ~]# lvremove /dev/myvg/lvmbox
Do you really want to remove active logical volume lvmbox? [y/n]: y
Logical volume "lvmbox" successfully removed
You have mail in /var/spool/mail/root
[root@localhost ~]# vgremove /dev/myvg
Do you really want to remove volume group "myvg" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume lvswap? [y/n]: y
Logical volume "lvswap" successfully removed
Volume group "myvg" successfully removed
[root@localhost ~]# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
[root@localhost ~]# lvscan
No volume groups found
[root@localhost ~]# vgcreate vgnsd /dev/sdb[1-2]
Volume group "vgnsd" successfully created
[root@localhost ~]# vgcreate vgdata /dev/sdb3
Volume group "vgdata" successfully created
[root@localhost ~]# lvcreate -L 4G -n lvswap vgdata
Logical volume "lvswap" created
[root@localhost ~]# lvscan
ACTIVE '/dev/vgdata/lvswap' [4.00 GB] inherit
[root@localhost ~]# lvcreate -l 4772 -n lvhome vgnsd
Logical volume "lvhome" created
[root@localhost ~]# lvscan
ACTIVE '/dev/vgdata/lvswap' [4.00 GB] inherit
ACTIVE '/dev/vgnsd/lvhome' [18.64 GB] inherit
[root@localhost ~]# mkdir /opt/home
[root@localhost ~]# cp -rpf /home/* /opt/home
[root@localhost ~]# mkfs.ext3 /dev/vgnsd/lvhome
[root@localhost ~]# mount /dev/vgnsd/lvhome /home
[root@localhost ~]# cp -rpf /opt/home/* /home
[root@localhost ~]# mkswap /dev/vgdata/lvswap
Setting up swapspace version 1, size = 4294963 kB
[root@localhost ~]# swapon /dev/vgdata/lvswap
[root@localhost ~]# free -m
[root@localhost ~]# vim /etc/fstab
/dev/vgnsd/lvhome /home ext3 defaults 0 0
/dev/vgdata/lvswap swap swap defaults 0 0
[root@localhost ~]# mount
[root@localhost ~]# df -h
[root@localhost ~]# free -m