Дисковый массив Linux-RAID и карта массива (включая шаги по созданию RAID5)


Предисловие

  • RAID (Redundant Array of Independent Disks), полное название Redundant Array of Independent Disks
  • Проще говоря, RAID представляет собой комбинацию нескольких независимых жестких дисков (физических жестких дисков) по-разному, чтобы сформировать группу жестких дисков (логический жесткий диск), тем самым обеспечивая более высокую производительность хранения, чем один жесткий диск, и предоставляя технологию резервного копирования данных.
  • С точки зрения пользователя составная дисковая группа похожа на жесткий диск, и пользователь может разбивать, форматировать и т. Д.
  • Различные способы формирования дискового массива называются уровнями RAID.Уровни RAID также представляют собой несколько различных уровней технологии RAID, которые могут обеспечивать разную скорость, безопасность и экономичность.
  • Выбор соответствующего уровня RAID в соответствии с реальной ситуацией может удовлетворить требования пользователя к доступности, производительности и емкости системы хранения.

1. Подробное описание массива жестких дисков RAID.

  • Объединение нескольких независимых физических жестких дисков различными способами в группу жестких дисков (логический жесткий диск) для обеспечения более высокой производительности хранилища, чем у одного жесткого диска, и обеспечения технологии резервного копирования данных
  • RAID разделен на разные уровни, и разные уровни RAID достигли разных компромиссов в надежности данных и производительности чтения и записи.
  • Обычно используются следующие уровни RAID:
    • RAID 0
    • RAID 1
    • RAID 5
    • RAID 6
    • RAID 1 + 0 и т. Д.

1. Введение в дисковый массив RAID 0

Вставьте описание изображения сюда

  • RAID 0 (чередующееся хранилище)
  • RAID 0 непрерывно разделяет данные на биты или байты и читает / записывает на несколько дисков параллельно, поэтому он имеет высокую скорость передачи данных, но не имеет избыточности данных.
  • RAID 0 просто улучшает производительность и не дает гарантии надежности данных, а отказ одного из дисков повлияет на все данные и параллельную комбинацию N жестких дисков.
  • RAID 0 нельзя использовать в случаях с высокими требованиями к безопасности данных

2. Знакомство с дисковым массивом RAID 1

Вставьте описание изображения сюда

  • RAID 1 (зеркальное хранилище)
  • Обеспечьте избыточность данных за счет зеркалирования дисковых данных и создайте взаимные резервные копии данных на паре независимых дисков.
  • Когда исходные данные заняты, данные могут быть прочитаны непосредственно из зеркальной копии, поэтому RAID 1 может улучшить производительность чтения.
  • RAID 1 имеет самую высокую удельную стоимость в дисковом массиве, но обеспечивает высокую безопасность и доступность данных. При выходе из строя диска система может автоматически переключаться на чтение и запись на зеркальный диск без реорганизации неисправных данных.

3. Знакомство с дисковым массивом RAID 5

Вставьте описание изображения сюда

  • N (N> = 3) дисков образуют массив, одна часть данных генерирует N-1 полос, а одна копия данных четности. Всего N частей данных циклически и равномерно сохраняются на N дисках.
  • N дисков читают и записывают одновременно, производительность чтения очень высока, но из-за проблем с механизмом проверки производительность записи относительно низкая.
  • (N-1) / N Использование диска
  • Высокая надежность, позволяющая повредить один диск, не затрагивая все данные

4. Знакомство с дисковым массивом RAID 6

Вставьте описание изображения сюда

  • N (N> = 4) дисков образуют массив, (N-2) / N использование диска
  • По сравнению с RAID 5, RAID 6 добавляет второй независимый блок информации о четности.
  • Две независимые системы контроля четности используют разные алгоритмы, даже если два диска выйдут из строя одновременно, это не повлияет на использование данных.
  • По сравнению с RAID 5, "потеря записи" больше, поэтому производительность записи низкая.

5. Таблица сравнения RAID

Уровень RAID Количество жестких дисков Использование диска Есть чек? Способность защиты Производительность записи
RAID0 N N нет нет N раз одного жесткого диска
RAID1 N (четное число) N / 2 нет Разрешить сбой устройства Необходимо написать две пары запоминающих устройств, чтобы подготовиться друг к другу
RAID5 N> 3 (N-1) / N Есть Разрешить сбой устройства Необходимо написать расчетный чек
RAID6 N> 4 (N-2) / N Есть Разрешить два сбоя устройства Необходимо дважды написать проверку расчета
RAID1 + 0 N> = 4 (четное число) N / 2 нет Разрешить одному из двух базисных наборов быть плохим N / 2 диска одновременно пишут

6. Введение в дисковый массив RAID 1 + 0

Вставьте описание изображения сюда

  • RAID 1 + 0 (сначала зеркалирование, затем чередование)
  • После того, как N (четное число, N> = 4) дисков попарно зеркалируются, они объединяются в RAID 0
  • Использование диска N / 2
  • N / 2 дисков пишут одновременно, N дисков читают одновременно
  • Высокая производительность и высокая надежность

2. Введение карты массива

1. Введение в Array Card

  • Карта массива - это плата, используемая для реализации функции RAID.
  • Обычно состоит из ряда компонентов, таких как процессор ввода-вывода, контроллер жесткого диска, разъем жесткого диска и кэш
  • Различные карты RAID поддерживают разные функции RAID:
    например, поддерживают RAID0, RAID1, RAID5, RAID10 и т. Д.
  • Типы интерфейса карты RAID:
    интерфейс IDE, интерфейс SCSI, интерфейс SATA и интерфейс SAS

2. Кэш карты массива

  • Кэш - это место, где карта RAID обменивается данными с внешней шиной.Карта RAID сначала передает данные в кэш, а затем кэш обменивается данными с внешней шиной данных.
  • Размер и скорость кеша являются важными факторами, напрямую связанными с фактической скоростью передачи данных карты RAID.
  • Различные карты RAID оснащены на заводе разным объемом памяти, обычно от нескольких мегабайт до сотен мегабайт.

В-третьих, создайте программный массив RAID5, шаги

1. Добавьте жесткий диск к виртуальной машине

Не забывайте, что виртуальную машину необходимо выключить перед добавлением.Проверьте
Вставьте описание изображения сюда
раздел диска, чтобы убедиться, что жесткий диск создан успешно.

[root@localhost ~]# fdisk -l        

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ac95

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    54527999    20971520   83  Linux
/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris
/dev/sda4        62916608    83886079    10484736    5  Extended
/dev/sda5        62918656    83886079    10483712   83  Linux

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdd:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sde:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

2. Проверьте, установлен ли пакет mdadm.

[root@localhost ~]# rpm -q mdadm 
mdadm-4.0-5.el7.x86_64

3. Создайте раздел, таким же образом создайте остальные три

Измените идентификационный номер раздела на "fd"

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x7f2f5d10 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7f2f5d10

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    83886079    41942016   fd  Linux raid autodetect

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

4. Создайте устройство RAID.

[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 41909248K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
  • -C: Новый
  • -v: отобразить подробную информацию о процессе создания
  • / dev / md5: создать имя RAID5
  • -a yes: -auto, что означает, что если какой-либо файл устройства не существует, он будет создан автоматически, что может быть опущено
  • -l: указать уровень RAID, l5 означает создать RAID5
  • -n: указать использование нескольких жестких дисков для создания RAID, n3 означает использование 3 жестких дисков для создания RAID.
  • / dev / sd [bd] 1: укажите эти четыре раздела диска для создания RAID.
  • -x: указать использование чрезвычайно быстрых жестких дисков в качестве дисков горячего резерва для RAID, x1 означает зарезервировать свободный жесткий диск в качестве запасного.
  • / dev / sde1: обозначен как запасной жесткий диск

5. Просмотрите процесс создания RAID.

  • Здесь вы можете увидеть текущий процент завершения (37,5%), время ожидания завершения и скорость передачи.

  • [UUU] Для завершения вы можете ввести эту команду несколько раз, чтобы просмотреть текущий прогресс выполнения.

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [=======>.............]  recovery = 37.5% (15727256/41909248) finish=2.1min speed=203812K/sec
      
unused devices: <none>
[root@localhost ~]# 
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [=============>.......]  recovery = 68.2% (28595200/41909248) finish=1.0min speed=207154K/sec
      
unused devices: <none>

  • Вы также можете просмотреть процесс создания RAID с помощью следующей команды
  • Здесь вы видите, что три активные, а другой запасной
[root@localhost ~]# mdadm -D /dev/md5 
/dev/md5:
           Version : 1.2
     Creation Time : Wed Nov 25 16:24:23 2020
        Raid Level : raid5
        Array Size : 83818496 (79.94 GiB 85.83 GB)
     Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Nov 25 16:27:54 2020
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       3       8       65        -      spare   /dev/sde1
 

6. Осуществите восстановление после сбоя

  • Имитация сбоя / dev / sdc1
[root@localhost ~]# mdadm /dev/md5 -f /dev/sdc1 
mdadm: set /dev/sdc1 faulty in /dev/md5
  • Проверьте еще раз, вы обнаружите, что SDC находится в неисправном состоянии
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdd1[4] sde1[3] sdc1[1](F) sdb1[0]
      83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [==>..................]  recovery = 14.3% (6008320/41909248) finish=2.9min speed=200277K/sec
      
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md5 
/dev/md5:
           Version : 1.2
     Creation Time : Wed Nov 25 16:24:23 2020
        Raid Level : raid5
        Array Size : 83818496 (79.94 GiB 85.83 GB)
     Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Nov 25 16:34:28 2020
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 32% complete

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
            Events : 25

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       65        1      spare rebuilding   /dev/sde1
       4       8       49        2      active sync   /dev/sdd1

       1       8       33        -      faulty   /dev/sdc1
  • Просмотр обнаружил, что sde1 заменил sdc1
[root@localhost ~]# mdadm -D /dev/md5 
/dev/md5:
           Version : 1.2
     Creation Time : Wed Nov 25 16:24:23 2020
        Raid Level : raid5
        Array Size : 83818496 (79.94 GiB 85.83 GB)
     Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Nov 25 16:36:55 2020
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
            Events : 37

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       65        1      active sync   /dev/sde1
       4       8       49        2      active sync   /dev/sdd1

       1       8       33        -      faulty   /dev/sdc1

7. Создайте и смонтируйте файл.

Наконец, создайте каталог md5 в корневом каталоге, а затем отформатируйте RAID

[root@localhost ~]# cd ..
[root@localhost ~]# mkdir /md5

[root@localhost ~]# mkfs.xfs /dev/md5
[root@localhost ~]# cd  /md5
[root@localhost ~]# touche md5.txt
[root@localhost md5]# ls
md5.txt

Наконец, проверьте, здесь вы можете увидеть, что это 80G вместо 120G. Как мы узнали ранее, коэффициент использования RAID5 составляет всего 3/4

[root@localhost md5]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        20G  4.3G   16G   22% /
devtmpfs       devtmpfs  898M     0  898M    0% /dev
tmpfs          tmpfs     912M     0  912M    0% /dev/shm
tmpfs          tmpfs     912M  9.1M  903M    1% /run
tmpfs          tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  174M  5.9G    3% /boot
tmpfs          tmpfs     183M  4.0K  183M    1% /run/user/42
tmpfs          tmpfs     183M   28K  183M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/md5       xfs        80G   33M   80G    1% /md5

рекомендация

отblog.csdn.net/weixin_51486343/article/details/110131356