在本地磁盘型云主机做软RAID的实践

简介: 阿里云中购买了一台拥有本地磁盘的云服务器。比如 ecs.i2.16xlarge. 为了保证数据安全性,以及读写速度,我们通常会对磁盘做RAID。但是云主机又不同于本地物理主机,没有办法添加RAID卡,这就需要通过软件来实现RAID。

阿里云中购买了一台拥有本地磁盘的云服务器。比如 ecs.i2.16xlarge. 为了保证数据安全性,以及读写速度,我们通常会对磁盘做RAID。
1551068038463
但是云主机又不同于本地物理主机,没有办法添加RAID卡,这就需要通过软件来实现RAID。

这里我们采用RAID10的方式。

RAID 10

RAID 10是一个RAID 1与RAID 0的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了RAID 0的快速和RAID 1的安全。我们知道,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。其实,下图只是一种RAID 10方式,更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。


像RAID0一样,数据跨磁盘抽取;像RAID1一样,每个磁盘都有一个镜象磁盘, 所以RAID 10的另一种会说法是 RAID 1+0。RAID10提供100%的数据冗余,支持更大的卷尺寸,但价格也相对较高。对大多数只要求具有冗余度而不必考虑价格的应用来说,RAID10提供最好的性能。使用RAID10,可以获得更好的可靠性,因为即使两个物理驱动器发生故障,每个阵列中都有一个,数据仍然可以得到保护。RAID10需要4 + 2*N 个磁盘驱动器(N >=0), 而且只能使用其中一半或更小的磁盘用量, 例如 4 个 250G 的硬盘使用RAID10 阵列, 实际容量是 500G。

mdadm

mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown.


在linux系统中目前以MD(Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上.

使用mdadm将8块磁盘组成RAID 10

操作系统为CentOS7.4, 8块磁盘分别为vd[b-i]
1) 安装mdadm

yum -y install mdadm

2) 创建阵列

mdadm --create --auto=yes --verbose /dev/md0 --level=10 --raid-devices=8 /dev/vd[bcdefghi]

3) 查看状态

cat /proc/mdstat
Personalities : [raid10] 
md0 : active raid10 vdi[7] vdh[6] vdg[5] vdf[4] vde[3] vdd[2] vdc[1] vdb[0]
      23068143616 blocks super 1.2 512K chunks 2 near-copies [8/8] [UUUUUUUU]
      [>....................]  resync =  0.0% (3032704/23068143616) finish=1774.5min speed=216621K/sec
      bitmap: 172/172 pages [688KB], 65536KB chunk
unused devices: <none>
[root@bgd-spark001 ~]# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Aug 28 16:00:12 2018
        Raid Level : raid10
        Array Size : 23068143616 (21999.50 GiB 23621.78 GB)
     Used Dev Size : 5767035904 (5499.87 GiB 5905.44 GB)
      Raid Devices : 8
     Total Devices : 8
       Persistence : Superblock is persistent
     Intent Bitmap : Internal
       Update Time : Tue Aug 28 16:01:03 2018
             State : clean, resyncing 
    Active Devices : 8
   Working Devices : 8
    Failed Devices : 0
     Spare Devices : 0
            Layout : near=2
        Chunk Size : 512K
Consistency Policy : bitmap

     Resync Status : 0% complete

              Name : bgd-spark001:0  (local to host bgd-spark001)
              UUID : aae72c6b:c40922c0:4e64d0dd:f0c3886a
            Events : 9

    Number   Major   Minor   RaidDevice State
       0     253       16        0      active sync set-A   /dev/vdb
       1     253       32        1      active sync set-B   /dev/vdc
       2     253       48        2      active sync set-A   /dev/vdd
       3     253       64        3      active sync set-B   /dev/vde
       4     253       80        4      active sync set-A   /dev/vdf
       5     253       96        5      active sync set-B   /dev/vdg
       6     253      112        6      active sync set-A   /dev/vdh
       7     253      128        7      active sync set-B   /dev/vdi 

4) 测试性能

#往磁盘中写入大小为256MB的单个文件:
dd if=/dev/zero of=/dev/md0 bs=256M count=1 oflag=dsync
#写入1000次512字节:
dd if=/dev/zero of=/dev/md0 bs=512 count=1000 oflag=dsync
#从阵列中拷贝256KiB*15000(3.9 GB)大小内容到/dev/null:
dd if=/dev/md0 of=/dev/null bs=256K count=15000

5) 格式化

mkfs.ext4 /dev/md0

6) 挂载

mkdir /dfs
mount /dev/md0 /dfs

7) 设置开机自动挂载
查看设备uuid

mdadm --detail /dev/md0

将uuid写入到/etc/mdadm.conf中

DEVICE /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf /dev/vdg /dev/vdh /dev/vdi
ARRAY /dev/md0  UUID=d17e2e6e:d2e76fa9:ab3ff508:3a95957f
MAILADDR root@localhost

8) 启动监听服务

systemctl start mdmonitor

9) 在/etc/fstab中加入

/dev/md0 /dfs ext4 defaults 1 2

至此,所有操作已经完成。

目录
相关文章
|
7月前
|
存储 SQL 关系型数据库
服务器数据恢复—同友存储中raid5阵列上层虚拟机数据恢复案例
某单位同友存储,存储设备中若干磁盘组建了raid5磁盘阵列。未知原因导致存储设备崩溃无法启动,raid5阵列上层的虚拟机全部丢失,其中存放了重要数据的3台虚拟机需要恢复。
服务器数据恢复—同友存储中raid5阵列上层虚拟机数据恢复案例
|
算法 固态存储 关系型数据库
|
2月前
|
存储 固态存储 定位技术
如何选择移动存储设备
【10月更文挑战第6天】选择移动存储设备需考虑多个因素,包括存储容量、读写速度、接口类型、设备类型及数据安全。容量应根据需求评估,留有余量;读写速度影响传输效率,USB 3.0 及以上接口更佳;设备类型有U盘、移动硬盘等,各具特色;数据加密和品牌质量保证则提升数据安全性。
|
7月前
|
运维 数据挖掘
服务器数据恢复—RAID5磁盘阵列2块盘离线的数据恢复案例
服务器中有一组由多块硬盘组建的raid5磁盘阵列,服务器阵列中2块硬盘先后掉线导致服务器崩溃。
服务器数据恢复—RAID5磁盘阵列2块盘离线的数据恢复案例
|
存储 算法 数据挖掘
服务器数据恢复—raid6硬盘故障导致nas存储无法访问的数据恢复案例
一台nas存储中有一组由十几块硬盘组建的raid6磁盘阵列。 nas存储中的raid6阵列成员盘出现故障离线,磁盘阵列崩溃,nas存储无法正常访问。
服务器数据恢复—raid6硬盘故障导致nas存储无法访问的数据恢复案例
|
弹性计算 Linux Windows
云硬盘配置
使用云硬盘,是在原有基础上进行数据扩容,以满足业务系统或实际生产环境中的配置需求。申请的云硬盘可挂载使用,当不再使用时,可将云硬盘卸载,及时释放资源。本次实验主要介绍在Windows及Linux环境下,云硬盘如何使用。 系统盘在创建云服务器时自动创建并挂载,无法单独购买。 数据盘可以在购买云服务器的时候购买,由系统自动挂载给云服务器。也可以在购买了云服务器之后,单独购买云硬盘并挂载给云服务器。 本次实验在华南-广州一区域创建两台Windows弹性云服务器,然后申请一块云硬盘挂载给ecs-mp作为数据盘并留下测试文件,然后卸载再挂载到ecs-test云服务器上查看文件是否存在,以此来体验云硬盘的
|
Shell Linux
关于pm2在云服务器上造成磁盘不足的解决方案
前几次一直用FTP上传到服务器一直报错 在这里插入图片描述 从网上也查过不少资料,终于找到原因所在,磁盘不足。于是使用df -h命令
|
存储 算法 开发工具
服务器硬件及RAID配置实践
1、RAID磁盘阵列介绍 2、创建RAID磁盘阵列
服务器硬件及RAID配置实践
|
Linux Shell C语言
将tinycolinux以硬盘模式安装到云主机
本文关键字:tinycolinux安装到阿里云主机,tinycolinux实机硬盘模式安装,vs Frugal tinycorelinux Scatter模式安装,重新定制tinycolinux的rootfs
250 0
将tinycolinux以硬盘模式安装到云主机