LVM和RAID学习及实践
- 背景
- LVM简介
- 新加硬盘的操作
- RAID-磁盘阵列
- 应用场景
- RAID0
- RAID1
- 其他结构RAID
- 制作RAID
- 小结
背景
某台服务器的磁盘管理需要自己动手处理,找了一些资料也踩了一些坑,在这里记录一下,先介绍一下LVM和RAID这两个东西。在计算机系统中,为了提高存储系统的性能、可用性和容量,许多技术被引入,其中包括LVM(Logical Volume Manager)和RAID(Redundant Array of Independent Disks)。
LVM简介
LVM(Logical Volume Manager)逻辑卷管理,通过封装一套逻辑层来管理磁盘空间,使用逻辑卷和逻辑卷管理可以更加轻松的管理磁盘空间,如果LVM托管的文件系统需要更多的空间,可以将其卷组中可用的空间直接分配给逻辑卷已达到扩容的目的。
- 物理设备(Disk A,B):提供逻辑卷实际的存储地址。
- 物理卷(Physical Volume 1,2,3):对磁盘进行分区后,通过pvcreate为其添加标签,使其可以与LVM结合使用。
- 卷组(Volume Group 1,2):包含多个物理卷的池,VG的大小是池内所有物理卷的总和,通过vgcreate创建。
- 逻辑卷(Logical mVolume):从卷组中分配空间给每一个逻辑卷,通过像使用分区一样给用户使用,通过lvcreate创建。
新加硬盘的操作
这块硬盘是4T的所以不能用传统MBR分区(2T),所以用gdisk分区
gdisk /dev/sdg
# 分区后需要选择分区格式
t Change a single partition's type code. You enter the type code using a two-byte hexadecimal number, as described earlier. You may also enter a GUID directly, if you have one and gdisk doesn't know it
选择Linux LVM类型
pvcreate /dev/sdg1 # 创建物理卷
vgcreate vg_cros_hdd /dev/sdg1 # 创建卷组,包含物理卷sdg1
lvcreate -n jilixin -L 500G vg_cros_hdd # 创建逻辑卷
mkfs -t ext4 /dev/vg_cros_hdd/jilixin # 初始化文件系统
mkdir /mnt/jlx # 创建挂载目录
mount /dev/vg_cros_hdd/jilixin /mnt/jlx
RAID-磁盘阵列
RAID:独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。通过将多个硬盘驱动器组合在一起来提高性能、冗余性和容量的技术。RAID使用多种级别,每个级别提供不同的特性和权衡。
应用场景
- 提高性能: RAID 0和RAID 5通常用于提高读/写性能。
- 提供冗余性: RAID 1、RAID 5和RAID 6用于提供数据冗余,增加系统的可用性。
RAID0
RAID0的思想是把多个廉价的磁盘组成阵列来提升性能,也称为条带模式(striped),即把连续的数据分散到多个磁盘上存取,总线在读取数据的时候可以并行在多个磁盘上读取数据,理论上总线性能>>磁盘性能的时候,这种方式可以达到磁盘个数倍的效果。
RAID1
RAID1是一个全冗余的设计,也成为镜像模式,保证数据安全,适用于对数据安全要求高的场景下,至少应该使用2的倍数块磁盘来组RAID1,并且RAID1的容量会减半,并且如果使用两块不一样大小的磁盘,RAID1的容量是小的那块。RAID1每次写入数据的时候都会给镜像中写入同样的数据作为备份。
其他结构RAID
- 可以看看这个人写的
制作RAID
RAID分为软件RAID和硬件RAID
- 硬件RAID :服务器上必须配备有RAID卡来实现硬件RAID,直接使用物理插拔的方式配置硬盘,然后在服务器RAID配置中选用合适的RAID。
- 软件RAID :零成本的RAID制作方式,如下,将使用mdadm软件包来制作,介绍在本机实践的RAID 0
# 安装mdadm软件包
apt install update
apt-get install install mdadm -y
# 创建raid分区
fdisk /dev/sdf
# 分区完成时选择分区类型
t
fd
w
# 两个磁盘都需要进行同样的分区 sdf sdg
# 创建raid0
mdadm -C /dev/md0 -l raid0 -n 2 /dev/sd[f-g]1
# 初始化文件系统
mkfs -ext4 /dev/md0
# 创建挂载点进行挂载
mkdir /mnt/raid0
mount /dev/md0 /mnt/raid0
小结
将LVM和RAID结合使用,可以提供更灵活、可靠的存储解决方案。我们可以创建RAID数组,然后在其上使用LVM创建逻辑卷,实现动态调整大小、数据迁移以及RAID级别的选择。