RAID-1 в RHEL 6; невозможно получить разделение на идентичные устройства, чтобы выглядеть одинаково

727
clu

У меня есть файловый сервер RHEL 6. Он содержит два идентичных диска SATA емкостью 2 ТБ. Оба должны содержать один раздел, который занимает все пространство на диске (и раньше). Когда я настроил систему, это означало, что у меня были / dev / sda1 и / dev / sdb1, которые составляли два активных члена моего raid-массива. В то время оба раздела охватывали все цилиндры привода. / dev / md0 отображается на /. (Для / boot или чего-то еще нет отдельных разделов.)

Недавно sda удалили из рейда из-за ошибки адресации lba, и - после проверки диска - я бездумно добавил / dev / sda в рейд вместо / dev / sda1. Когда я осознал свою ошибку, я установил / dev / sda как неисправный, удалил его из рейда и решил воссоздать / dev / sda1 как один раздел, который охватывает весь диск, и повторно добавить его в рейд.

Мне не удалось выполнить эту миссию, потому что я не могу получить раздел / dev / sda1, соответствующий размеру раздела / dev / sdb1.

Оба привода идентичны, как указано ранее, и поэтому имеют одинаковое количество цилиндров. Допустим, это число X. fdisk позволит мне создать раздел / dev / sda1, который идет от цилиндра 1 к цилиндру X. Отлично. Но MD не позволит мне добавить это в массив, потому что он говорит, что размеры не одинаковы. Итак, я посмотрел на / dev / sdb1 через fdisk, и вот в чем дело: он идет от цилиндра 1 к цилиндру X + 1! А?

Может кто-нибудь объяснить, что происходит со мной и сказать, как это исправить?

0
«Fdisk -l» показывает вещи, использующие разрешение цилиндров. Не могли бы вы опубликовать вывод «fdisk -lu» для / dev / sda и / dev / sdb? Это даст разрешение сектора. kbyrd 12 лет назад 0
fdisk -lu показывает одинаковую информацию для двух дисков (кроме их серийного номера). Мне сложно разместить данные здесь, так как я не использую браузер на файловом сервере. clu 12 лет назад 0

3 ответа на вопрос

0
Chris Nava

Вы можете столкнуться с ошибкой округления при выборе последнего цилиндра. Попробуйте указать немного меньший размер раздела и позвольте программному обеспечению разделов найти его для вас.

Пробовал это; непроходной. Это все еще остается на один цилиндр меньше, чем нужно. clu 12 лет назад 0
0
clu

Обновление: я сделал наоборот. Я удалил / dev / sdb1 из md0, попытался переразметить его, а затем заново добавить / dev / sdb1. Это также не сработало, поскольку / dev / sda теперь на один цилиндр больше, чем / dev / sdb1, а / dev / sda является частью md0. Поэтому я добавил / dev / sdb (а не его раздел) в md0. Это сработало. Так что теперь я добавил / dev / sda и / dev / sdb в / dev / md0. По крайней мере, есть симметрия. Теперь у меня есть новая проблема, касающаяся grub, и я отправил дополнительный вопрос по ней.

0
kbyrd

Во-первых, я понятия не имею, что происходит. Но я думаю, что вы все равно можете получить RAID, состоящий из разделов. Во-первых, вытрите начало / dev / sda, чтобы очистить любую таблицу разделов, подпись RAID или что-нибудь еще ( будьте осторожны, это уничтожит данные на sda )

dd if=/dev/zero of=/dev/sda bs=1M count=10 

Затем попробуйте один из следующих

Интерактивный fdisk:

  1. Выполните команду 'fdisk -lu / dev / sdb', чтобы определить точные сектора / dev / sdb1, начинающиеся и заканчивающиеся.
  2. Сделайте интерактивный fdisk на / dev / sdaa с помощью 'fdisk / dev / sda'. Наберите 'u', чтобы вы могли работать в секторах. Создайте новый основной раздел, используя начальный / конечный секторы, показанные на шаге 1.
  3. Сохраните в fdisk, затем либо проверьте с помощью 'fdisk -l', либо попробуйте mdadm еще раз с / dev / sda1.

Грубая сила:

  1. Скопируйте таблицу разделов из / dev / sda в / dev / sdb с помощью 'dd if = / dev / sdb of = / dev / sda bs = 512 count = 1'.
  2. Либо перезагрузите компьютер, либо запустите partprobe, чтобы система распознала новый / dev / sda1. Попробуйте добавить / dev / sda1 с mdadm

баллонный:

  1. Создайте sda1 того размера, который вы хотите (немного меньше, это хорошо).
  2. Создайте новый массив RAID (md1) с помощью / dev / sda1 и отсутствующего устройства. 'mdadm --create / dev / md1 --level 1 --raid-devices = 2 отсутствует / dev / sda1'
  3. Создайте файловую систему в / dev / md1 и смонтируйте оба / dev / md0 и / dev / md1.
  4. Скопируйте содержимое / dev / md0 в / dev / md1.
  5. Повторно раздел / dev / sdb1 будет размером, который вы использовали в шаге 1.
  6. Добавьте / dev / sdb1 в / dev / md1.