Автор Тема: Howto - upgrade на raid-1 масив  (Прочетена 14991 пъти)

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Howto - upgrade на raid-1 масив
« -: Jan 21, 2008, 13:58 »
Изходни данни:
Два SATA диска по 120 GB със следните дялове:
/dev/md0 - монтиран като / (sda2, sdb2)
/dev/md1 - монтиран като /boot (sda1, sdb1)
/dev/md2 - монтиран като /usr (sda6, sdb6)
/dev/md3 - монтиран като /var (sda5, sdb5)
/dev/sda7 - монтиран като /tmp
/dev/sdb7 - монтиран като /var/tmp
/dev/sda3 и /dev/sdb3 - SWAP

Задача:
/dev/md3 беше започнал да се пълни, и преди да стигне до края - реших да подменя дисковете с 500 GB. Порових се в GOOGLE, намерих 2-3 статийки - изглеждаше лесна манипулация.

Решение:
1. С помощта на fdisk (команда p) проверих точните размери на всеки от дяловете, и след това с помощта на PartitionMagic създадох абсолютно същите дялове на двата нови диска - освен sda5 (sdb5), който разширих до максимално запълване на свободното пространство. Форматирах разделите за SWAP, а другите оставих UNFORMATTED

2. Изпълних командите
Примерен код
mdadm --fail /dev/md0 --remove /dev/sdb2
mdadm --fail /dev/md1 --remove /dev/sdb1
mdadm --fail /dev/md2 --remove /dev/sdb6
mdadm --fail /dev/md3 --remove /dev/sdb5
swapoff /dev/sdb3

3. Изключих сървъра, и подмених /dev/sdb с новия 500 GB

4. Включих сървъра, и с помощта на fdisk промених типа на разделите по следния начин (команда t):
Примерен код

/sdb1 - fd (Linux RAID autodetect)
/sdb2 - fd
/sdb4 - 5 (Extended), защото PartitionMagic го създаде с тип 4
/sdb5 - fd
/sdb6 - fd
/sdb7 - 83 (Linux native)

Форматирах /sdb7 като ext3 файлова система - команда mke2fs -j /dev/sdb7, след което изпълних следните команди, като изчаквах всяка от тях да завърши синхронизирането (периодично проверявах с cat /proc/mdstat)
Примерен код
mdadm /dev/md0 --add /dev/sdb2
mdadm /dev/md1 --add /dev/sdb1
mdadm /dev/md2 --add /dev/sdb6
mdadm /dev/md3 --add /dev/sdb5

5. Закоментирах редa в /etc/fstab за монтирането на /var (това е нужно, за да мога по-късно да разширя старата файловата система до размера на новия дял)

6. Изключих сървъра, извадих /dev/sda, на негово място сложих току-що записания 500 GB диск, а вместо /dev/sdb сложих втория (все още празен) 500 GB диск

7. Включих сървъра в еднопотребителски режим. За GRUB това се прави по следния начин:
Примерен код
1. по време на началното зареждане се натиска произволен клавиш
2. в резултат се появява менюто за избор на ядро
3. със стрелките се избира желаното ядро (моето беше SMP)
4. натиска се клавиш "е", появяват се параметрите за зареждане на ядрото
5. със стрелките се отива на реда, на който е посочено ядрото
        kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/md0
6. натиска се отново клавиш "e", за да влезе в режим на редактиране
7. накрая на реда се добавя интервал и думата "single" (или само "s")
8. натиска се ENTER, за да излезе от режим на редактиране
9. натиска се клавиш "b", за да започне зареждане на избраното ядро

8. При стартирането се появяват грешки, че липсват директории /var/lib и /var/run, но може смело да се игнорират. По същия начин както и за предния диск с fdisk промених типа на разделите, след което форматирах /dev/sdb7

9. Последователно изпълних следните команди, като изчаквах всяка от тях да завърши синхронизирането (периодично проверявах с cat /proc/mdstat)
Примерен код
mdadm /dev/md0 --add /dev/sdb2
mdadm /dev/md1 --add /dev/sdb1
mdadm /dev/md2 --add /dev/sdb6

Нарочно не написах последната команда mdadm /dev/md3 --add /dev/sdb5, както беше препоръчано в ръководствата, които намерих в GOOGLE - защото това не даде резултат.
Правилната поредица от команди е
Примерен код
mdadm --stop /dev/md3
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sd[ab]5

Последната команда е най-важна в цялото това упражнение, защото без нея resize2fs няма да може да свърши нищо - RAID масивът си остава със старата големина, въпреки че се намира в нов и по-голям раздел.
Изпълнението й е доста бавно, за разлика от mdadm --add - 132 минути срещу 26 минути за HOT-ADD.

10. След като всички RAID масиви бяха синхронизирани, изпълних командата resize2fs /dev/md3
Точно заради нея по-горе закоментирах монтирането на /var в /etc/fstab. При първото й изпълнение тя поиска да пусна e2fsck -f /dev/md3 - направих го.

11. Махнах коментара за монтирането на /var от /etc/fstab, промених правата на /tmp и /var/tmp да бъдат 0777 и рестартирах

12. Всичко тръгна нормално. За всеки случай реших да настроя GRUB да може да зарежда и от /dev/sdb (ако случайно се наложи):
Примерен код

grub
device (hd0) /dev/sdb
root (hd1,0)
setup (hd1)
quit

13. Готово - df би трябвало да показва, че /var е с новата големина
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Howto - upgrade на raid-1 масив
« Отговор #1 -: Jan 22, 2008, 10:40 »
добре написано.

Ако имаш желание/време, разшири го малко с обосновка защо точно така трябва да се направи и други подобни и го прехвърли във wiki-то
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

plamen_f

  • Напреднали
  • *****
  • Публикации: 1246
    • Профил
Howto - upgrade на raid-1 масив
« Отговор #2 -: Jan 22, 2008, 14:24 »
Моите поздравления и уважение!
Браво
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
mplayer howto на български
Преводи на документация
ZakkWylde 2 4881 Последна публикация Jun 02, 2003, 14:36
от kennedy
webserver howto
Настройка на програми
betatester 1 2918 Последна публикация Jul 27, 2003, 14:44
от
HOWTO
Преводи на програми
gamehack 6 4374 Последна публикация Jan 12, 2004, 00:21
от sebastianz55
Kernel HOWTO ???
Настройка на програми
luboto 0 1665 Последна публикация Feb 02, 2004, 19:27
от luboto
Sata raid с rocket raid 1640
Настройка на хардуер
plamen_f 1 4467 Последна публикация Mar 25, 2007, 12:03
от Kollin