Debian GNU/Linux – Софтуерен RAID върху дискове, по-големи от 2 TB

Преди седмица ми се наложи да инсталирам сървър. Стабилен, с RAID1 и всичко, което досега се въздържах да слагам – предпочитах периодично синхронизиране на дискове. Какво да се прави, изисквания, оттам спецификация – накратко, реална необходимост. Уви, наложи се RAID-ът да е софтуерен, но какво да се прави – като няма сирене, баницата става и с извара. И за да си спестя потенциално бедствен ъпгрейд сравнително скоро, тръгнах директно с testing инсталационното CD на wheezy (бета 2).

С малко експерименти пуснах IPMI-то на машината да се форуардва през рутер и се заех с инсталирането. Като изключим настройката на RAID-а всичко е отработено до скука. А и тя се оказа съвсем лесна и проста – свалям шапка на авторите на дебианския инсталатор (и се гордея, че между тях има и българин – Антон Зиновиев). Проблемът дойде, когато накрая на инсталацията дойде поставянето на GRUB. Резултатът упорито и с компютърна повтаряемост беше грешка.

Брех, рекох си. Нали райда уж е срещу буболечки, бива ли така? 😉 Посветих на операцията и следващите няколко късни вечери, но късната вечер не е добро време за чоплене на проблеми с нови неща…

Едва вчера (неделя) смогнах да се заема с чопленето от сутринта, на свежа глава. Естествено, проблемът веднага ме набоде в очите. Когато погледнах syslog конзолата на инсталатора, там се блещеше умонепобираемо как проспаното при толкова гледания съобщение, че инсталаторът не открива GPT Boot Partition.

(За свикналите с MS-DOS тип master boot sector: при дискови обеми над 2 TB той вече не може да опише коректно обемите и позициите на дяловете. Затова при такива дискове дебианският инсталатор използва GUID Partition Table. Чудесно решение с един-единствен мъничък недостатък: не съдържа място за стартируем код. Когато слагате обикновени дялове, това не е проблем – управлението се предава директно на boot sector-а на съответния дисков дял. Ако обаче имате софтуерен RAID, ви е нужен boot код, който да го активира и да качи информацията от дисковете коректно – ключът се оказва в чекмеджето.)

Оттам вече решението беше просто. При първото стартиране на инсталационното CD инсталаторът се пуска не в режим Install, а в Rescue mode (в Advanced options е). Стартира се gdisk (той поддържа GPT) и се прави нужният ви GPT Boot Partition.

Когато започнете да правите през дебианския инсталатор нужните ви дялове по дисковете, той ще прави границите им кратни на 1 MB. Това прави работата с диска доста по-удобна и пъргава за повечето файлови системи, на цената на мъничко изгубено пространство. GPT-то заема 16.5 KB, или първите 33 сектора на диска. Останалият почти 1 MB (сектори от 34 до 2047) остава неизползваем. Е, време е да го употребим. 🙂 Правите на двата диска, които ще обедините в RAID1 (ако ще използвате друго ниво RAID – съответно за него) по един партишън, който започна на 34 сектор и завършва на 2047, и му задавате тип EF02 – тоест, GPT Boot Partition.

Записвате промените и рестартирате. На второто пускане вече тръгвате на инсталация. (Не зная дали опцията dmraid=true все още е необходима на ядрото, но за всеки случай съветвам да я впишете – като отидете на Install, натискате Tab и я довъвеждате.) Делите си дисковете както искате, но не пипате GPTBP дяловете. И когато стигнете докрая – о, чудо – поставянето на GRUB на диска минава безпроблемно и имате работеща система.

Ха честит RAID, и приятно трепане на буболечките! 🙂

5 Responses to 'Debian GNU/Linux – Софтуерен RAID върху дискове, по-големи от 2 TB'

  1. wn Says:

    За трепането на бубулечки ДДТ-то е далеч по-ефективно.

  2. Божо Says:

    Уви, наложи се RAID-ът да е софтуерен, но какво да се прави

    В повечето случаи софтуерният е за предпочитане. Едно, че позволява по-голяма гъвкавост, но още повече, че повечето RAID контролери са все разни фейкове…

    Ако имаш хубав хардуерен RAID-контроелр с батерия, памет и всичките му чалъми за няколко стотин долара (уви), тогава това е по-доброто решение, ама ако опцията е фейк срещу софтуерен RAID – софтуерният е по-доброто решение.

    И не се заблуждавайте, че ако е вграден контролер на сървърно дъно не е фейк! Само на някакво IBM-ско дъно съм виждал истински контролер.

  3. maniac Says:

    Създаването на въпросния “груб” дял може да е направи и в самия инсталатор. Като се влезе на ръчно делене на диска, създава се дяла и за тип файлова система се даваше “grub нещо си”. (нямам инсталатор пред мен в момента :))
    Ако ползвате parted:
    set bios_grub on

  4. scanman Says:

    леле, некакви свръхчовешки създания сте, както викаше един познат руснак около такива хора се върти света 🙂

  5. Божо Says:

    Тъй, тъй…
    Таквизе сме 😀

Leave a Reply