Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это распространенный сценарий использования программного 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 mdadmCentOS и Oracle Linux
sudo yum install mdadmSLES и 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/md127SLES 11
sudo mkfs -t ext3 /dev/md127SLES 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 /dataRHEL или CentOS
# sudo yum install util-linux # sudo fstrim /data