首页 > 代码库 > lvm逻辑卷管理和软Raid设置
lvm逻辑卷管理和软Raid设置
一、LVM逻辑卷管理
1. 定义
将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从其中划分出不同的逻辑分区,逻辑分区的大小可以根据需求扩大和缩减
2. LVM概念
PV:物理卷
VG:卷组(可以包含65534个PE)
LV:逻辑卷,真正存储数据的
PV物理卷--->VG卷组--->LV逻辑卷--->格式化--->挂载使用文件系统
3. LVM管理命令
功能 物理卷 卷组 逻辑卷
scan(扫描) pvscan vgscan lvscan
create(创建) pvcreate vgcreate lvcreate
display(显示) pvdisplay vgdisplay lvdisplay
remove(移除) pvremove vgremove lvremove
extend(扩充) vgextend lvextend
reduce(减小) vgreduce lvreduce
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阵列的固定设置
练习一:创建卷组
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/sdb3
[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