RAID和LVM

磁盘阵列RAID

说到这里,也是很尴尬前段时间测试,就提到RAID,不懂这个原理。。。。

多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

RAID的好处:

1、提高IO能力,可以实现磁盘并行读写

2、提高耐用性,通过磁盘冗余来实现

3、级别:多块磁盘组织在一起的工作方式有所不同

RAID实现的方式

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置

软件RAID:通过OS实现

  通常情况下,是通过硬RAID来实现

RAID级别

  RAID-0:条带卷,strip 

RAID-1:镜像卷,mirror 

RAID-2 .. 

RAID-5 

RAID-6 

RAID-10 

RAID-01

RAID-0:

特点:

1、可以同时进行读写,很明显读、写性能提升;无容错能力;

2、最少磁盘数:2, 2+

   缺点:将一份数据均等放在不同硬盘上,如果有一块硬盘损坏,数据就会损坏不能用,目前基本不用;容错性太差。

                

RAID-1:

   特点:

  1. 读性能提升、写性能略有下降
  2. 可用空间:1*min(S1,S2,...) 有冗余能力
  3. 最少磁盘数:2, 2N

   缺点:

      1、两块硬盘读写性能提升,自动同步,另一块相当于镜像;如果损坏的话,均损坏

      2、磁盘利用率明显降低

               

RAID-4:

特点:

  1. 多块数据盘异或运算值存于专用校验盘 
  2. 如果损坏的话,通过异或校验位来找回来
  3. 读写并行;具有容错性

缺点:

  1. 通过校验位占用了其中一块的空间,磁盘利用率为n-1/n (n>=3 )
  2. 校验盘磁盘压力,容易损坏

RAID-5:

特点:

  1. 读、写性能提升
  2. 可用空间:(N-1)*min(S1,S2,...)
  3. 有容错能力:允许最多1块磁盘损坏 最少磁盘数:3, 3+
  4. 解决了校验盘压力大的缺陷,均等分配磁盘压力

   缺点:

  1. 如果损坏的话,需要降级使用
  2. 在某些安全等级高的情况下,也基本不适用

         

RAID-6:

特点:

  1. 读、写性能提升
  2. 可用空间:(N-2)*min(S1,S2,...)
  3. 有容错能力:允许最多2块磁盘损坏
  4. 最少磁盘数:4, 4+

                   

RAID-10:

特点:

  1. 读、写性能提升
  2. 可用空间:N*min(S1,S2,...)/2
  3. 有容错能力:每组镜像最多只能坏一块
  4. 最少磁盘数:4, 4+
  5. 兼顾了RAID0和RAID1,磁盘利用率50%

     

RAID-01

特点:

  多块磁盘先实现RAID0,再组合成RAID1,磁盘利用率50%

           

相较于RAID10RAID01相对较差

RAID-50

   多块磁盘先实现RAID5,再组合成RAID0

 

JBOD:Just a Bunch Of Disks

    特点:

  1. 将多块磁盘的空间合并一个大的连续空间使用
  2. 可用空间:sum(S1,S2,...)
  3. 不均等分配

                    

RAID7

可以看作一个独立存储计算机,自身带有操作系统和管理工具,可以独立 运行,理论上性能最高的RAID模式

常用级别: RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

软RAID

  1. mdadm:为软RAID提供管理界面
  2. 为空余磁盘添加冗余
  3. 结合内核中的md(multi devices)
  4. RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等

逻辑卷管理器(LVM)

1、本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,

2、将几块磁盘(物理卷,PhysicalVolume)组合形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。

3、底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。

允许在多个物理设备间重新组织文件系统

• 将设备指定为物理卷

• 用一个或者多个物理卷来创建一个卷组

• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的

• 在物理卷上创建的逻辑卷 是由物理区域(PE)组成

• 可以在逻辑卷上创建文件系统

 

 优点:

1、解决系统分区分配不均匀问题,可以在线操作划分逻辑卷

2、在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。

3、LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。

/boot 是启动分区,不能作为逻辑卷

pv管理工具

1、显示pv信息

pvs:简要pv信息显示

Pvdisplay

2、创建pv

pvcreate /dev/DEVICE

3、删除pv

pvremove /dev/DEVICE

vg管理工具

  1、显示卷组

vgs

vgdisplay

2、vgcreate

3、管理卷组

4、删除卷组

先做lvremove,再做vgremove

lv管理工具

1、显示逻辑卷

lvs

lvdisplay

    2、创建逻辑卷

lvcreate -L #[mMgGtT] -n NAME VolumeGroup

lvcreate -l 60%VG -n mylv testvg

lvcreate -l 100%FREE -n yourlv testvg

3、删除逻辑卷

lvremove /dev/VG_NAME/LV_NAME

4、重设文件系统大小

fsadm [options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

xfs_growfs /mountpoint

扩展和缩减逻辑卷

    扩展逻辑卷:

lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME

lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME

缩减逻辑卷:

umount /dev/VG_NAME/LV_NAME

e2fsck -f /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

创建LVM逻辑卷:

  1. 硬盘分区

硬盘不需要加标签,分区要加标签

4G分区+20G硬盘

2、创建物理卷:

查看物理卷具体信息:

pvs

pvdisplay  查看内容更加详细

3、创建卷组  vg0为自定义卷组名 

vgcreate vg0  /dev/sd{b1,d}

指定PE的大小   -s|--physicalextentsize Size[m|UNIT] ]

4、pvs 查看卷组名

    

5、创建逻辑卷lvcreate

lvcreate -n mysql -L 8G vg0

自定义名称并非真实路径,是一个软链接dm-0

查看物理卷具体使用情况,可以用pvdisplay

PE在逻辑卷里面的定义:LE

6、创建文件系统mkfs.xfs  /dev/vg0/mysql

7、blkid  使用时不能使用逻辑卷的成员,必须用/dev/mapper/vg0-mysql

  1. 永久挂载

  1. 测试逻辑卷速度

扩展:

扩展逻辑卷——>扩展文件系统

xfs_growfs ext  /mount/mysql (挂载点)    xfs系列的文件系统更新到内存中

resize2fs   /dev/vg0/binlog(设备名)   ext 系列的文件系统更新到内存中

不写大小,默认将卷组中剩余空间全部扩展

使用上述两种命令,需要判断文件系统时xfs还是ext。

lvextend适用于ext、xfs 文件系统

lvextend -r  -l  +500  /dev/vg0/binlog

缩减

缩减文件系统——>缩减逻辑卷(必须离线状态)

以缩小如下图所示逻辑卷为例,步骤如下

  1. 取消挂载

umount /mount/binlog

  1. 缩减文件系统resize2fs  /dev/vg0/binlog    10G

                          卷组名       缩小到10G

系统检查完整性会报错,按照提示再次执行系统提示命令就ok

  1. lvreduce -L 10G  /dev/vg0/binlog

  1. 重新挂载

mount /dev/vg0/binlog   /mnt/binlog/

xfs 文件系统只能扩大,不能缩减

ext4 系列可以缩减,但是用的比较少,且操作需要谨慎

跨主机迁移逻辑卷

迁移前的准备

       创建物理卷 pvcreate /dev/sdb

       创建卷组 vgcreate -s 16M vg0 /dev/sdb

       创建逻辑卷lvcreate  -n  mysql -L 2G vg0

       创建文件系统 mkfs.ext4 /dev/vg0/mysql

       挂载mount /dev/vg0/mysql   /mount/mysql

       构造数据(测试环境)...

   步骤:

      1、取消挂载 umount /mount

      2、修改卷组名称 vgrename vg0 vg1

3、卷组禁用vg0  vgchange -an vg1

4、变成导出状态 vgexport vg1

5、拆除硬盘.到新的机器上....

6、变成导入状态vgimport vg1

7、启用状态 vgchange  -ay  vg1

8、重新挂载 mount /dev/vg1/mysql   /mount/vg1-mysql

删除逻辑卷,卷组,pv

  1. umount /mount/vg0-mysql
  2. lvremove /dev/vg0/mysql
  3. vgremove vg0
  4. pvremove /dev/sdc

LVM的快照管理

  

  1. lvcreate -s -n mysql_snapshot2 -L 1G /dev/vg0/mysql   

  -s 表示创建逻辑卷快照

2、查看逻辑卷

3、xfs文件系统的UUID相同的无法挂载

  4、mount -o nouuid  /dev/vg0/mysql_snapshot2  /mount/snap/

 

5、lvdisplay 可以看到/dev/vg0/mysql 为源;/dev/vg0/mysql_snapshot2为它的快照

对源挂载点目录下文件进行不同方式的操作 touch f5

  5、此时查看快照里面的内容,其实是磁盘里面的状态,并非已经做好快照

7、将源挂载与快照均取消挂载

umount /mount/snap/

  umount /mount/mysql/

 

8、将快照恢复到源挂载状态,系统会自动找到快照的本身逻辑卷

lvconvert  --merge /dev/vg0/mysql_snapshot2

9、再次挂载:

mount /dev/vg0/mysql /mount/mysql

切换到原来的挂载点,可以看到保留的是修改前状态的文件:f2、f3、f4 ,而f5会丢失

10、查看逻辑卷的状态,可以看到快照已经没有,只能用一次,可以类比与虚拟机的快照一样。

 

11、对于ext4系列文件系统2处稍微有些区别,其他步骤一样

Linux服务器中,为了实现动态的磁盘配额管理并确保系统的稳定性高效性,通常需要结合RAID技术LVM来进行。以下是详细步骤操作方法: 参考资源链接:[Linux服务器磁盘管理:配额、RAIDLVM详解](https://wenku.csdn.net/doc/kerkk8dp7c?spm=1055.2569.3001.10343) 首先,你需要确定服务器上的磁盘硬件是否支持RAID。对于硬件RAID,通常需要进入BIOS设置来配置RAID模式。软件RAID则可以使用mdadm工具在操作系统层面实现。例如,创建一个RAID-1镜像来提高数据的可靠性,可以使用以下命令: ```bash mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 ``` 接着,设置LVM以便能够动态地扩展或缩减逻辑卷的大小。创建物理卷(PV)、卷组(VG)逻辑卷(LV)的命令如下: ```bash pvcreate /dev/md0 vgcreate myvg /dev/md0 lvcreate -L 10G -n mylv myvg ``` 安装文件系统后,可以使用`mkfs`命令格式化逻辑卷: ```bash mkfs.ext4 /dev/myvg/mylv ``` 然后,挂载逻辑卷并启用磁盘配额功能。编辑`/etc/fstab`文件,添加以下行: ```bash /dev/myvg/mylv /mnt/mylv ext4 defaults,usrquota,grpquota 0 2 ``` 挂载并检查磁盘配额功能是否正常工作: ```bash mount -o remount /mnt/mylv quotacheck -cum /mnt/mylv quotacheck -gum /mnt/mylv quotaon -v /mnt/mylv ``` 使用`edquota`命令编辑用户或用户组的配额: ```bash edquota -u username ``` 最后,可以通过`quota`命令查看配额使用情况: ```bash quota -u username ``` 通过这种方式,你可以动态地管理磁盘空间的分配,并且当业务需求变化时,可以灵活地调整逻辑卷的大小。同时,RAID技术确保了数据的冗余可靠性,LVM提供了高度的灵活性,使得整个系统的文件系统管理更加高效稳定。 为了深入理解掌握这些技术,建议查阅《Linux服务器磁盘管理:配额、RAIDLVM详解》。这本书详细介绍了配额、RAIDLVM的实现原理管理方法,对于需要提高Linux服务器管理技能的读者来说,是一份宝贵的资源。 参考资源链接:[Linux服务器磁盘管理:配额、RAIDLVM详解](https://wenku.csdn.net/doc/kerkk8dp7c?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值