Легко розширити програмне забезпечення Linux RAID 5 за допомогою XFS. Кращі практики?


13

Я використовую свою машину Ubuntu як файловий сервер для клієнтів Windows / Linux / Mac, що використовують спільний доступ Samba. Мені потрібно, щоб його було легко розширювати, просто додаючи більше жорстких дисків, не потребуючи переміщення даних назад і назад.

Ось як я це робив досі. Я успішно додав четвертий жорсткий диск. Тепер було б непогано знати, як це робити? Що я роблю неправильно чи що можу зробити краще?

Створення початкового масиву 3 приводів

Я почав з трьох порожніх дисків: / dev / sdb, / dev / sdc та / dev / sdd.

Спочатку я створив порожні розділи для всіх дисків:

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Коли на всіх трьох дисках були створені порожні розділи RAID, я створив масив RAID5:

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Зараз створено масив RAID5, і він вже будується. Це потребує часу, але ви можете продовжити створення нового фізичного тома LVM2:

$ pvcreate /dev/md0

Тепер давайте створимо нову групу томів:

$ vgcreate vd_raid /dev/md0

Тоді нам потрібно створити новий логічний том у цій групі томів. Спочатку нам потрібно визначити точний розмір створеної групи томів:

$ vgdisplay vg_raid

Розмір можна побачити з рядка, який вказує на "Усього ПЕ" у фізичних розмірах. Уявімо, що це 509. Тепер створіть новий логічний том, який займе весь наявний простір:

$ lvcreate -l 509 vg_raid -n lv_raid

Нарешті ми можемо створити файлову систему поверх цього логічного тома:

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

Щоб мати можливість використовувати наш щойно створений масив RAID, нам потрібно створити каталог і змонтувати його:

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

Тепер він готовий до використання. Але для того, щоб він автоматично монтувався після перезавантаження, нам потрібно зберегти геометрію RAID у файлі конфігурації mdadm:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Потім додайте наступний рядок до / etc / fstab, який автоматично монтує RAID масив:

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

Тепер масив RAID готовий до використання та автоматично встановлюється в / raid каталог після кожного завантаження.

Додавання нового масиву до масиву

Давайте уявимо, що тепер у вас є новий диск / dev / sde, який ви хочете додати до створеного раніше масиву, не втрачаючи жодних даних.

По-перше, новий привід потрібно розділити, як і всі інші диски:

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Потім його потрібно додати до масиву RAID:

$ mdadm --add /dev/md0 /dev/sde1

Тепер масив RAID5 включає чотири накопичувачі, які використовуються лише три. Масив потрібно розширити, щоб він включав усі чотири диски:

$ mdadm --grow /dev/md0 --raid-devices=4

Тоді фізичний об'єм LVM2 потрібно розширити:

$ pvresize /dev/md0

Тепер фізичний обсяг змінюється за замовчуванням, щоб охопити весь доступний простір у масиві RAID. Нам потрібно з’ясувати новий розмір у фізичних розширеннях:

$ vgdisplay vg_raid

Уявімо, що зараз новий розмір - 764 (видно з "Total PE"). Тепер розгорніть логічний том, щоб охопити це:

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

Потім розгорніть файлову систему XFS. Це потрібно зробити під час онлайн-файлової системи та встановити її:

$ xfs_grow /raid

За замовчуванням він розширюється, щоб охопити весь наявний простір. Нарешті, геометрію масиву RAID потрібно оновити, оскільки тепер масив містить новий диск. Спочатку видаліть доданий рядок із /etc/mdadm/mdadm.conf, а потім додайте новий:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
Не ставте розділи на диски. У цьому немає необхідності - автоматичне виявлення RAID в ядрі (тип розділу fd) застаріле.
Джеймс

Отже, замість створення типів 'fd' розділів за допомогою fdisk, я повинен просто створити масив / dev / md0 для / dev / sdb, / dev / sdc та / dev / sdd пристроїв?
Таскінен

1
Я чув, що не всі диски мають однаковий розмір, тому якщо я придбаю новий терабайтний диск, він може бути не однакового розміру. Чи це призведе до певних проблем?
Таскінен

Відповіді:


5

Я думаю, що ти правильно це зробив. Переконайтеся, що ви розумієте та прислухаєтесь до попереджень щодо зростання RAID 5 дюйма man 8 mdadm.

Особисто, якби я нарощував об'єм LVM, я б не нарощував існуючий масив RAID, щоб це зробити. Я створив би інший масив RAID, створив би з нього нову формулу і додав би її до тієї самої групи томів. Це набагато безпечніша операція (не передбачає перезапис всього масиву RAID5 через новий набір дисків) і зменшує розмір ваших масивів.


Абсолютно згідний. vgextend - ваш друг тут.
Dan Andreatta

1
Взагалі я розумію, але як бути з ситуацією, коли я хочу перетворити згаданий три дисковий масив у чотири дисковий масив. Я не можу створити новий масив RAID лише з четвертого диска.
Таскінен

1
Я б не розширював дисковий масив сервера зберігання по одному диску за один раз. Перехід від трьох дискових масивів до чотирьох дискових масивів дасть вам лише на 50% більше пам’яті, тому що ви повинні використовувати диски одного розміру.
Каміль Кісієль

1
Домовились. До того часу, коли у вас не вистачить місця, великі дискові накопичувачі подешевшають. Створіть другий масив RAID на новому наборі великих дисків, а потім pvmove ваші старі дані до цього та зніміть старий набір, коли pvmove буде виконано. Це все можна зробити, поки файлові системи в логічних томах, на які впливає pvmove, активно використовуються.
flabdablet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.