zoukankan      html  css  js  c++  java
  • centos7.6进行软raid5制作

     centos7.6进行软raid5制作

     

    备注(本次记录源于同事的分享)

    原分享地址:同事分享直达

    一、系统版本说明

    1、系统版本说明

    这里要制作软RAID 的操作系统版本是CentOS 7.6 64位。

    2、检查服务器是否已经安装mdadm服务

    [root@host2 ~]# rpm -qa |grep mdadm

    3、安装mdadm服务
    如果上面的命令没有结果输出,那么进行安装mdadm

    [root@host2 ~]# yum install -y mdadm

    4、查看磁盘情况
    可以看到系统有/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四个没有分区的磁盘。
    注意:使用命令创建软raid时磁盘可以分区也可以不分区,但是使用disk命令分区时,磁盘的分区类型可以修改成 Linux raid autodetect,这样即使不配置 /etc/mdadm.conf 文件,系统重启时raid也能自启动。

    [root@host2 ~]# lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda
    8:0 0 60G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 16G 0 part [SWAP] └─sda3 8:3 0 43G 0 part / sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk sdd 8:48 0 5G 0 disk sde 8:64 0 5G 0 disk sr0 11:0 1 4.3G 0 rom

    二、磁盘分区、制作raid


    1、磁盘分区


    1.1和1.2根据磁盘大小选择其中一个命令去分区就行,一般选择parted命令分区。

    注意:fdisk分区采用的是MBR格式,MBR无法支持超过2TB的硬盘,超过2TB的硬盘需要使用GPT分区,这里GPT分区用的是parted命令。


    1.1、fdisk分区

    分区示例如下以磁盘/dev/sdb分区为例,/dev/sdc、/dev/sdd、/dev/sde这三个磁盘分区与/dev/sdb分区过程一样。

    [root@host2 ~]# fdisk /dev/sdb
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table
    Building a new DOS disklabel with disk identifier 0x8f2aa0c0.
    
    Command (m for help): n                        # 开始创建分区
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p                          # p 开始创建主分区(e 是创建逻辑分区)
    Partition number (1-4, default 1):             # 回车(分区默认编号为1)
    First sector (2048-10485759, default 2048):    # 回车(分区大小默认从2048开始)
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): # 回车(分区默认最大)
    Using default value 10485759
    Partition 1 of type Linux and of size 5 GiB is set
    
    Command (m for help): t                        # 开始修改分区类型
    Selected partition 1
    Hex code (type L to list all codes): fd        # 修改分区类型为Linux raid autodetect
    Changed type of partition 'Linux' to 'Linux raid autodetect'
    
    Command (m for help): p                        # 查询分区结果
    
    Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x8f2aa0c0
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    10485759     5241856   fd  Linux raid autodetect
    
    Command (m for help): w                        # 保存分区并退出
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@host2 ~]# partprobe                      # 更新磁盘分区

    分区后查询磁盘结果如下

    [root@host2 ~]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   60G  0 disk 
    ├─sda1   8:1    0    1G  0 part /boot
    ├─sda2   8:2    0   16G  0 part [SWAP]
    └─sda3   8:3    0   43G  0 part /
    sdb      8:16   0    5G  0 disk 
    └─sdb1   8:17   0    5G  0 part 
    sdc      8:32   0    5G  0 disk 
    └─sdc1   8:33   0    5G  0 part 
    sdd      8:48   0    5G  0 disk 
    └─sdd1   8:49   0    5G  0 part 
    sde      8:64   0    5G  0 disk 
    └─sde1   8:65   0    5G  0 part 
    sr0     11:0    1  4.3G  0 rom  

    1.2、parted分区

    分区示例如下以磁盘/dev/sdg分区为例:

    [root@host137 ~]# parted /dev/sdg
    GNU Parted 3.1
    Using /dev/sdg
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) mklabel gpt                    # 创建一个gpt类型的分区表                                  
    Warning: The existing disk label on /dev/sdg will be destroyed and all data on this disk will be lost. Do you want to continue?
    Yes/No? yes                                                               
    (parted) mkpart primary 0% 100%         # “primary” 是名称,可以任意起,0% 100%指定分区的起始和结束位置                                  
    (parted) p                              # 查看分区情况                                  
    Model: ATA HUS726060ALE610 (scsi)
    Disk /dev/sdg: 6001GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name     Flags
     1      1049kB  6001GB  6001GB               primary
    
    (parted) q                             # 保存分区并退出                                   
    Information: You may need to update /etc/fstab.
    [root@host137 ~]# partprobe            # 更新磁盘分区

    2、创建raid并挂载

    -C 指定创建raid名称;-a yes 自动创建设备文件;-l 指定raid级别;-n 磁盘个数;-c 数据块大小, 默认大小为64k,一般不用-c。
    cat /proc/mdstat 命令可以看到raid里面的磁盘spare rebuilding同步的进度。
    这里以raid5为例(raid5这里用了4块磁盘做演示,一般组建软raid5 3块磁盘就可以):

    [root@host2 ~]# mdadm -C /dev/md0 -a yes -l 5 -n 4 /dev/sd{b,c,d,e}1 -c 256       
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    [root@host2 ~]# mdadm -Ds                  # 查看raid信息
    ARRAY /dev/md0 metadata=1.2 spares=1 name=host2:0 UUID=e2ea5580:d5f14d94:9365e4fe:cdfe1b92
    [root@host2 ~]# echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf 
      # DEVICE为实际做RAID的磁盘盘符名
      
    [root@host2 ~]# mdadm -Ds >> /etc/mdadm.conf 
    # 将raid信息保存到配置文件/etc/mdadm.conf,如果配置文件不完整,
    建议参考标准配置文件根据实际情况补全,否则没有配置文件机器重启后新建的分区盘符会变为默认的md127。
    
    [root@host2 ~]# mkdir /data0               # 创建挂载点目录
    [root@host2 ~]# mkfs.xfs /dev/md0          # 创建raid磁盘文件系统为xfs
    meta-data=/dev/md0               isize=512    agcount=16, agsize=245504 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=3927552, imaxpct=25
             =                       sunit=64     swidth=192 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=64 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@host2 ~]# blkid /dev/md0            # 查看raid磁盘文件系统和UUID
    /dev/md0: UUID="43487c20-3b1f-477c-9a32-714d5982603a" TYPE="xfs"
    [root@host2 ~]# 
    sed -i '$a\UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0  xfs defaults,_netdev 0 0' /etc/fstab    
    # 用/dev/md0的UUID添加永久挂载,_netdev参数是标明/dev/md0为网络设备,
    服务器重启的时候系统找到/dev/md0设备就挂载,找不到就跳过挂载直接开机。如果没有_netdev参数,
    系统找不到/dev/md0设备就开不了机。
    [root@host2 ~]# mount -a                 
    # 验证开机自动挂载配置文件/etc/fstab中刚才写入的配置是否正确,然后可以用df -h命令查看/dev/md0是否挂载上
    
    [root@host2 ~]# tail -n 1 /etc/fstab      # 查看永久挂载结果
    UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0                   xfs defaults,_netdev 0 0
    [root@host2 ~]# mdadm -D /dev/md0         # -D 查看raid详细信息,可以发现4个都是working状态的
    
    /dev/md0:
               Version : 1.2
         Creation Time : Wed Dec 16 18:02:25 2020
            Raid Level : raid5
            Array Size : 15710208 (14.98 GiB 16.09 GB)
         Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
          Raid Devices : 4
         Total Devices : 4
           Persistence : Superblock is persistent
    
           Update Time : Wed Dec 16 18:20:10 2020
                 State : clean 
        Active Devices : 4
       Working Devices : 4
        Failed Devices : 0
         Spare Devices : 0
    
                Layout : left-symmetric
            Chunk Size : 256K
    
    Consistency Policy : resync
    
                  Name : host2:0  (local to host host2)
                  UUID : e2ea5580:d5f14d94:9365e4fe:cdfe1b92
                Events : 22
    
        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           1       8       33        1      active sync   /dev/sdc1
           2       8       49        2      active sync   /dev/sdd1
           4       8       65        3      active sync   /dev/sde1

    如果对操作不放心,做完后可以重启下测试raid磁盘状态及挂载是否正常。

    3、验证raid

    验证命令:

    lsblk
    blkid
    df -h
    cat /etc/fstab
    mdadm -D /dev/md0
    mdadm -D /dev/md1
    cat /proc/mdstat
    cat /etc/mdadm.conf
    mdadm -Ds

    4、移除坏盘、添加新磁盘

    1、模拟磁盘损坏
    [root@host2 ~]# mdadm -f /dev/md0 /dev/sdb1
    mdadm: set /dev/sdb1 faulty in /dev/md0
    2、查看raid5信息
    [root@host2 ~]# mdadm -D /dev/md0 
           0       8       17        -      faulty   /dev/sdb1
    
    3、移除损坏磁盘
    [root@host2 ~]# mdadm -r /dev/md0 /dev/sdb1
    4、添加新的磁盘
    [root@host2 ~]# mdadm -a /dev/md0 /dev/sdg1

    5、删除、重建raid

    1、删除软raid:
    (1)、umount /data0               # 删除之前先要先卸载挂载点
    (2)、mdadm --stop /dev/md0       # 停止raid
    (2)、mdadm --misc --zero-superblock /dev/sdb1 /dev/sdd1 /dev/sdd1 /dev/sde1  
     # 清空/dev/sdb1磁盘raid信息
    (3)、vim /etc/fstab                # 删除或注释/etc/fstab上的挂载信息
    (4)、vim /etc/mdadm.conf           # 删除或注释/etc/mdadm.conf的RAID信息
    如果做完上面所有的操作后,发现/dev/下还有md0这个设备文件存在,直接rm -f /dev/md0即可。
    
    2、重建启动软raid的命令:
    如果已经配置了/etc/mdadm.conf配置文件,则:mdadm -As /dev/md0
    如果没有配置/etc/mdadm.conf配置文件,则:mdadm -As /dev/md0 /dev/sd{b,c,d,e}1

    三、注意事项

    1、如果配置文件/etc/mdadm.conf不完整,建议参考标准配置文件根据实际情况补全,否则没有配置文件机器重启后新建的分区盘符会变为默认的md127。
    可通过如下命令将raid信息保存到配置文件/etc/mdadm.conf中,DEVICE为实际做RAID的磁盘盘符名:

    [root@host2 ~]# echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf
    [root@host2 ~]# mdadm -Ds >> /etc/mdadm.conf

    2、在配置文件/etc/fstab中挂载时,注意添加_netdev参数,这是标明/dev/md0为网络设备,服务器重启的时候系统找到/dev/md0设备就挂载,找不到就跳过挂载,直接开机。如果没有_netdev参数,系统找不到/dev/md0设备就开不了机。

    [root@host2 ~]# tail -n 1 /etc/fstab      # 查看永久挂载结果
    UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0                   xfs defaults,_netdev 0 0
  • 相关阅读:
    MySQL的双主配置
    MySQL主从复制配置部署
    Linux centOS安装MySQL
    hive搜索报错
    常用设计模式
    Cookie禁用 获取session
    排序算法
    MySQL优化
    javascript Map和Set
    ThinkPHP的基本操作
  • 原文地址:https://www.cnblogs.com/cc66/p/15643232.html
Copyright © 2011-2022 走看看