Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это распространенный сценарий использования программного RAID-массива на виртуальных машинах Linux в Azure для объединения нескольких подключенных дисков данных в одно устройство RAID. Как правило, это можно использовать для повышения производительности и повышения пропускной способности по сравнению с использованием только одного диска.
Присоединение дисков данных
Для настройки устройства RAID необходимо настроить два или более пустых дисков данных. Основной причиной создания RAID-устройства является повышение производительности операций ввода-вывода на диске. В зависимости от ваших потребностей во вводе-выводе, вы можете выбрать подключение дисков, хранящихся в нашем стандартном хранилище, с производительностью до 500 IO/ps на диск, или в нашем премиальном хранилище, с производительностью до 5000 IO/ps на диск. В этой статье не объясняется подробно, как подготовить и подключить диски данных к виртуальной машине Linux. Дополнительные инструкции по присоединению пустого диска данных к виртуальной машине Linux в Azure см. в статье Microsoft Azure “Присоединение диска” .
Это важно
Не смешивайте диски разных размеров, так как это ограничит производительность набора raidset до уровня самого медленного диска.
Установка служебной программы mdadm
Ubuntu
sudo apt-get update sudo apt-get install mdadm
CentOS & Oracle Linux
sudo yum install mdadm
SLES и openSUSE
zypper install mdadm
Создание секций диска
В этом примере мы создадим один раздел диска в /dev/sdc. Новый раздел диска будет называться /dev/sdc1.
Запустите
fdisk
, чтобы начать создание секцийsudo fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xa34cb70c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
Нажмите «n» в командной строке, чтобы создать раздел new partition:
Command (m for help): n
Затем нажмите клавишу "p", чтобы создать pосновной раздел.
Command action e extended p primary partition (1-4)
Нажмите клавишу "1", чтобы выбрать номер раздела 1:
Partition number (1-4): 1
Выберите начальную точку новой секции или нажмите
<enter>
, чтобы принять значение по умолчанию для размещения секции в начале свободного места на диске:First cylinder (1-1305, default 1): Using default value 1
Выберите размер секции, например "+10G", чтобы создать секцию размером 10 гигабайт. Кроме того, нажмите
<enter>
создайте одну секцию, которая охватывает весь диск:Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305
Затем измените идентификатор и type раздела с идентификатором 83 по умолчанию (Linux) на идентификатор fd (автоматический рейд Linux):
Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd
Наконец, запишите таблицу разделов на диск и выйдите из fdisk.
Command (m for help): w The partition table has been altered!
Создание массива RAID
В следующем примере будет осуществлено чередование (уровень RAID 0) трёх разделов, расположенных на трёх отдельных дисках данных (sdc1, sdd1, sde1). После выполнения этой команды создается новый RAID-устройство с именем /dev/md127. Кроме того, обратите внимание, что если эти диски данных раньше были частью другого неисправного массива RAID, возможно, потребуется добавить параметр
--force
в командуmdadm
:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
Создание файловой системы на новом устройстве RAID
CentOS, Oracle Linux, SLES 12, openSUSE и Ubuntu
sudo mkfs -t ext4 /dev/md127
SLES 11
sudo mkfs -t ext3 /dev/md127
SLES 11 — включите boot.md и создайте mdadm.conf
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
Примечание.
Перезагрузка может потребоваться после внесения этих изменений в системы SUSE. Этот шаг не требуется в SLES 12.
Добавление новой файловой системы в /etc/fstab
Это важно
Неправильное редактирование файла /etc/fstab может привести к незагружаемой системе. Если у вас есть сомнения, см. инструкции по правильному изменению этого файла в документации дистрибутива. Также рекомендуется перед внесением изменений создать резервную копию файла /etc/fstab.
Создайте нужную точку подключения для новой файловой системы, например:
sudo mkdir /data
При редактировании /etc/fstab UUID следует использовать для ссылки на файловую систему, а не имя устройства. Используйте служебную программу
blkid
, чтобы определить идентификатор UUID для новой файловой системы:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
Откройте /etc/fstab в текстовом редакторе и добавьте запись для новой файловой системы, например:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2
Или SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2
Затем сохраните и закройте /etc/fstab.
Проверьте правильность записи /etc/fstab:
sudo mount -a
Если эта команда приводит к ошибке, проверьте синтаксис в файле /etc/fstab.
Затем выполните команду
mount
, чтобы убедиться, что файловая система подключена:mount ................. /dev/md127 on /data type ext4 (rw)
(Необязательно) Параметры аварийной загрузки
конфигурация файла fstab
Многие дистрибутивы включают параметры подключения
nobootwait
илиnofail
, которые могут быть добавлены в файл /etc/fstab. Эти параметры допускают сбои при подключении определенной файловой системы и позволяют системе Linux продолжать загрузку, даже если не удается правильно подключить файловую систему RAID. Дополнительные сведения об этих параметрах см. в документации по дистрибутиву.Пример (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2
параметры загрузки Linux
Помимо указанных выше параметров, параметр ядра "
bootdegraded=true
" может позволить системе загружаться, даже если RAID воспринимается как поврежденный или пониженный, например, если диск данных непреднамеренно удаляется из виртуальной машины. По умолчанию это также может привести к незагрузочной системе.Ознакомьтесь с документацией по дистрибутиву по правильному изменению параметров ядра. Например, во многих дистрибутивах (CentOS, Oracle Linux, SLES 11) эти параметры можно добавить вручную в файл "
/boot/grub/menu.lst
". В Ubuntu этот параметр можно добавить в переменнуюGRUB_CMDLINE_LINUX_DEFAULT
в "/etc/default/grub".
Поддержка TRIM/UNMAP
Некоторые ядра Linux поддерживают операции TRIM и UNMAP для отмены неиспользуемых блоков на диске. Эти операции в основном полезны в стандартном хранилище для информирования Azure о том, что удаленные страницы больше не допустимы и могут быть удалены. Отмена страниц может сэкономить затраты, если вы создаете большие файлы, а затем удаляете их.
Примечание.
RAID не может выдавать команды на удаление, если размер блока для массива установлен менее значения по умолчанию (512 КБ). Это связано с тем, что степень детализации изображения на узле также составляет 512 КБ. Если вы изменили размер блока массива с помощью параметра --chunk=
mdadm, запросы TRIM/unmap могут игнорироваться ядром.
Существует два способа включить поддержку операций TRIM в виртуальной машине Linux. Как обычно, обратитесь к документации дистрибутива, чтобы выбрать рекомендуемый метод.
Используйте опцию монтирования
discard
в/etc/fstab
, например:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2
В некоторых случаях вариант
discard
может повлиять на производительность. Кроме того, вы можете вручную выполнить командуfstrim
из командной строки или добавить ее в crontab для регулярного выполнения.Ubuntu
# sudo apt-get install util-linux # sudo fstrim /data
RHEL или CentOS
# sudo yum install util-linux # sudo fstrim /data