...

среда, 2 апреля 2014 г.

[Из песочницы] Конвертация RAID 10 из 4-х дисков в RAID 6 из 8-ми дисков на серверах HP Proliant

image

Производить конвертацию мы будем на сервере HP Proliant DL160 G8 с обычным разбиением по разделам (не lvm). Т.е. диски sda1...sda8, каждый из которых примонтирован в определенный каталог. В случае с lvm процесс немного легче и удобнее. Статья должна подойти для любого hp-сервера, в котором используется официальная утилита hpacucli. В данном примере у нас CentOS 6.5, но подойдет любой Linux, поддерживаемый hpacucli.



В процессе конвертации для добавления места в CentOS придется отмонтировать каталог, в который мы будем добавлять свободное место (последний в таблице разделов parted — sda8), а также сделать reboot, если только все разделы sda1..sda8 не используются ни одним процессом.


Добавляем диски



Проверяем какой у нас RAID, сколько в нем дисков, а также сколько дисков не использовано:

#hpacucli ctrl all show config

В нашем случае команда покажет 4 диска в RAID 10 и 4 незадействованных диска, которые мы только что вставили.

Добавляем незадействованные диски в RAID 10:

#hpacucli ctrl slot=2 ld 1 add drives=allunassigned


Конвертация RAID 10 в RAID 6



Конвертируем командой:

#hpacucli ctrl slot=2 ld 1 modify raid=6

Проверяем, что теперь мы имеем RAID 6 из 8ми дисков:

#hpacucli ctrl all show config

Smart Array P420 in Slot 2 (sn: PDSXK0BRH5S1AY)

array A (SAS, Unused Space: 1525708 MB)

logicaldrive 1 (558.7 GB, RAID 6 (ADG), OK)

physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)

physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)

physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)

physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)

physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)

physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)

physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 300 GB, OK)

physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 300 GB, OK)

Расширяем полученный RAID до максимального размера:

#hpacucli ctrl slot=2 ld 1 modify size=max <code>array A (SAS, Unused Space: 0 MB)

Добавление места в CentOS




Заставляем CentOS пересканировать RAID:

#echo 1 > /sys/block/sda/device/rescan

Смотрим, что физически место появилось:

#fdisk -l
Добавление свободного места к последнем разделу в таблице разделов



Посмотрим текущую таблицу разделов, переведя единицы измерения в сектора:

#parted /dev/sda

(parted) unit s

(parted) print

Model: HP LOGICAL VOLUME (scsi)

Disk /dev/sda: 3515228764s

Sector size (logical/physical): 512B/512B

Partition Table: msdos

Number Start End Size Type File system Flags

1 2048s 1026047s 1024000s primary ext4 boot

2 1026048s 84912127s 83886080s primary ext4

3 84912128s 168798207s 83886080s primary ext4

4 168798208s 1171743323s 1002945116s extended

5 168800256s 252686335s 83886080s logical ext4

6 252688384s 294631423s 41943040s logical ext4

7 294633472s 303022079s 8388608s logical linux-swap(v1)

8 303025152s 1171743323s 868718172s logical ext4

Видим, что последний раздел 8й. Запоминаем начало 8го раздела (303025152s). Смотрим, куда он примонтирован:

#mount |grep sda8

/dev/sda8 on /var/lib type ext4 (rw)

Ищем, не использует ли кто-нибудь каталог /var/lib:

#lsof /var/lib

Выключаем все сервисы/процессы, которые показала эта утилита.

Теперь можно отмонтировать каталог:

#umount /var/lib

Если у нас только один раздел, на котором располагается корень системы, то нам не повезло, и придется загружаться в rescue режиме, после чего можно продолжать дальше.

Добавить место мы можем только в последний (8й) раздел.

Сначала увеличим 4й extended раздел, т.к. все разделы, номера которых больше четырех, по сути содержатся внутри 4го:

#parted

(parted) resize 4 168798208s -1s

Удаляем 8й раздел (с данными ничего не случится) и создаем новый, используя запомненный номер сектора начала этого раздела.

(parted) rm 8

(parted) mkpart logical ext4 303024128s -1s

Теперь чтобы CentOS увидел измененную таблицу разделов, если ни один процесс не использует разделы sda1..sda8, то просто делаем partprobe /dev/sda, иначе (что более вероятно) просто перезагружаем сервер.

После этого увеличиваем файловую систему раздела (если нам удалось избежать ребута, то нужно не забыть примонтировать раздел обратно командой mount /dev/sda8 /var/lib):

#resize2fs /dev/sda8


Проверяем:

#df -h

/dev/sda8 1.5T 229M 1.4T 1% /var/lib

P.S.

Зачем мы конвертировали RAID 10 в RAID 6?

Потому что он значительно быстрее для 8-ми дисков. Этот факт проверен и протестирован мной лично.

Полезные ссылки:


Hpacucli Utility for Linux — All Commands Guide.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий