使用 RAID合并云服务器磁盘

一、使用 RAID 合并磁盘(适用于云中的块存储)

如果我们需要提高磁盘的性能或冗余,可以考虑使用 RAID(如 RAID 0、RAID 1 或 RAID 5)。不过请注意,RAID 通常是在多个磁盘上配置的,因此需要至少两个磁盘。

基本情况:我已经拥有两块1.75 TiB 的云盘,现在需要在系统为Debian 10 的云服务器中创建一块 RAID 1 的云盘,接下来我们一起操作

  1. 附加多个磁盘到云服务器 通过云平台的控制台,附加两个或更多的磁盘。

    例如我下面已经有/dev/nvme1n1 和 /dev/nvme0n1 两块云盘

    # fdisk -l
    
    Disk /dev/nvme1n1: 1.75 TiB, 1920383410176 bytes, 3750748848 sectors
    Disk model: SAMSUNG MZQL21T9HCJR-00A07              
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 131072 bytes / 131072 bytes
    Disklabel type: dos
    Disk identifier: 0x2f91a31b
    
    
    Disk /dev/nvme0n1: 1.75 TiB, 1920383410176 bytes, 3750748848 sectors
    Disk model: SAMSUNG MZQL21T9HCJR-00A07              
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 131072 bytes / 131072 bytes
    
  2. 安装 mdadm 工具 使用 mdadm 创建软件 RAID 阵列。首先安装 mdadm

    apt-get update
    apt-get install mdadm  
    
  3. 创建 RAID 阵列 我们有两个磁盘 /dev/nvme1n1/dev/nvme0n1

    • 如果我们希望创建一个 RAID 1 阵列(数据冗余),可以使用以下命令:

      mdadm --create /dev/md0 --raid-devices=2 --level=1 /dev/nvme1n1 /dev/nvme0n1
      
    • 如果我们希望创建一个 RAID 0 阵列(性能提升但不冗余),可以使用以下命令:

      mdadm --create /dev/md0 --raid-devices=2 --level=0 /dev/nvme1n1 /dev/nvme0n1
      

    参数解释:

    • --create /dev/md0: 创建一个名为 /dev/md0 的 RAID 阵列。
    • --raid-devices=2: 指定 RAID 阵列中使用的设备数量,这里是 2 个设备。
    • --level=0: 指定 RAID 级别为 0,意味着没有冗余,提供性能提升。
    • /dev/nvme1n1 /dev/nvme0n1: 我们要加入到阵列中的磁盘设备。
  4. 格式化 RAID 阵列 创建文件系统(在这里我们格式化文件系统为ext4):

    mkfs.ext4 /dev/md0
    
  5. 挂载 RAID 阵列 创建挂载点并挂载新的 RAID 阵列:

    mkdir /data
    mount /dev/md0 /data
    
  6. 自动挂载 更新 /etc/fstab 文件,以确保 RAID 阵列在系统重启后自动挂载。首先,获取新的 RAID 阵列的 UUID:

    # blkid /dev/md0
    /dev/md0: UUID="c079908b-dc65-466c-abb8-53d482e33f8b" BLOCK_SIZE="4096" TYPE="ext4"
    

    然后编辑 /etc/fstab 文件,添加相应的行:

    UUID=your-uuid /mnt/raid ext4 defaults 0 2
    
  7. 查看磁盘是否挂载

    # df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/md0                      1.8T  212G  1.5T  13% /data
    

二、报错解决

  1. 报错一:未指定RAID级别

    • 报错信息

      mdadm: a RAID level is needed to create an array.
      
    • 解决方法:创建RAID阵列时,指定RAID级别

      mdadm --create /dev/md1 --raid-devices=2 --level=0 /dev/nvme1n1 /dev/nvme0n1
      
  2. 报错二:磁盘设备资源繁忙

    报错信息

    mdadm: cannot open /dev/nvme1n1: Device or resource busy
    

    报错原因

    主要有两点:

    • 1.该Device被某个进程占用,导致mdadm创建失败。
    • 2.该Device在本机已经被创建过RAID(被其他md设备占用),导致再用mdadm创建md时失败。

    解决方案

      1. 查看有无进程在占用,命令:
      fuser -m -v /dev/nvme1n1   #/dev/nvme1n1 被占用的设备
      

      ​ 若有,则根据进程的PID kill掉,命令:

       ```
      

      kill -9 xxx #xxx为进程的PID。若kill -9 还杀不掉,说明该进程可能死在了内核态,重启机器解决。
      ```

      1. 查看之前该Device是否已经被创建过RAID。
      # cat /proc/mdstat
      Personalities : [raid1] 
      md0 : active raid1 nvme1n1[1] nvme0n1[0]
            1875242304 blocks super 1.2 [2/2] [UU]
            bitmap: 4/14 pages [16KB], 65536KB chunk
      
      unused devices: <none>
      

      如上文所示,该Device在创建md1时已经被占用,md1可能是之前创建成功的RAID也可能是创建失败的残留,要想再使用该Device创建RAID只能停掉之前创建的RAID。命令:

      mdadm -S /dev/md1
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值