LINUX.ORG.RU

RAID 0 SWAP замена жесткого диска

 , ,


0

1

Здравствуйте, Уважаемые!

Прошу опытных людей подсказать мне одну тонкость в замене диска software RAID. Всё по порядку.

Что есть:

  • Операционная система Centos (Linux version 2.6.29 (root@proxy_0_6) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Apr 15 15:22:21 MSD 2009)
  • 3 жестких диска. 2 в RAID'е, третьий за замену одного из выходящего из строя.
  • Software RAID. До замены диска было вот так:
    #cat /proc/mdstat
    Personalities : [raid0] [raid1]
    md1 : active raid1 sda1[0] sdb1[1]
          152512 blocks [2/2] [UU]
    
    md2 : active raid0 sdb3[1] sda3[0]
          2056192 blocks 64k chunks
    
    md0 : active raid1 sda2[0] sdb2[1]
          155107456 blocks [2/2] [UU]
    
    unused devices: <none>
    


    Что произошло:
    SMART показал скорую смерть диска sda и его необходимо заменить. Заменить md1 и md0 не составило труда. Проблема в md2. Этот раздел отвечает за SWAP и так просто его не убрать. В виду того, что данный ПК должен показать верх стабильности, я не могу ни перезагружать ПК, ни, тем более, крахать. То есть всё нужно делать на «горячую»

    Что нужно:
    Нужно, не перезагружая ПК, сказать Centos, чтобы он перестал использовать SWAP, удалить md2/заменить sda3, собрать/запустить RAID0 заного, и сказать ОС, что этот новый раздел есть SWAP и можно на него начинать записывать информацию.

    Что есть на данный момент:
    Сейчас рейд у меня выглядит вот так:
    # cat /proc/mdstat
    Personalities : [raid0] [raid1]
    md1 : active raid1 sdc1[0] sdb1[1]
          152512 blocks [2/2] [UU]
    
    md2 : active raid0 sdb3[1] sda3[0]
          2056192 blocks 64k chunks
    
    md0 : active raid1 sdc2[0] sdb2[1]
          155107456 blocks [2/2] [UU]
    
    unused devices: <none>
    
    

    В интернете я нашел решение данной проблемы только по кусочкам или там, где нужно перезагружать ПК. При этом доверия к этим кусочкам информации у меня нет. Собственно поэтому я и прошу совета у опытных людей данного форума, как лучше сделать данную манипуляцию.
    Буду очень благодарен Вам за участие!

Интересно, чем руководствовались установщики системы, засунув swap на raid0?

Про swapoff уже сказали, после замены диска меняй раздел со swap с raid0 на raid1.

Deleted
()

Расскажи, зачем нужен отдельный RAID0 для swap? Ядро само умеет попеременно использовать разделы swap, если их больше 1.

Black_Shadow ★★★★★
()
Ответ на: комментарий от Deleted

Не знаю, чем руководствовались. Скорее всего думали так сделать подкачку с двойным размером и умнее RAID0 у голову ничего не пришло.
После разбора данного раздела я могу на свой выбор сделать либо RAID1, либо старый RAID0, либо вообще без рейда. Сейчас больше склоняюсь к безрейдовому разделу. А вы как считаете?
Вот еще для полноты вопроса команда free -mt:

free -mt
             total       used       free     shared    buffers     cached
Mem:          2016       1953         63          0        192       1203
-/+ buffers/cache:        557       1458
Swap:            0          0          0
Total:        2016       1953         63
Не нравятся мне нули на Swap'е...

PIKNIK
() автор топика
Ответ на: комментарий от Black_Shadow

Ядро само умеет попеременно использовать разделы swap, если их больше 1.

Уметь то умеет, но что произойдёт, если диск, на который в данный момент пишется swap, выдернуть из системы? :)

Deleted
()
Ответ на: комментарий от PIKNIK

Сейчас больше склоняюсь к безрейдовому разделу.

Неправильный вариант. Делать raid1 из двух партиций и там поднимать swap

Deleted
()
Ответ на: комментарий от Deleted

после замены диска меняй раздел со swap с raid0 на raid1.

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

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от sT331h0rs3

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

А зачем оно всем остальным? Давайте везде делать RAID0! =)

Deleted
()
Ответ на: комментарий от Deleted

Данным-то надёжность нужна, а свопу - такая надёжность, которую обеспечивает зеркало, точно нет, зато очень не помешала бы лишняя скорость.

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от sT331h0rs3

Ещё раз повторяю вопрос: что будет, если в момент записи свопа, выдернуть диск (что равносильно его выходу из строя), куда пишется этот своп?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от sT331h0rs3

Вообще 10 рейд надо, но тогда и дисков надо больше.Хотя лично по мне так, софтовый ред бред, ток железный надо.

erzent ☆☆
()
Ответ на: комментарий от Deleted

да всё что угодно, вплоть до кэрнел паники, а вот если swap отключить перед тем как диск вытаскивать, то ничего не будет.

erzent ☆☆
()
Ответ на: комментарий от erzent

да всё что угодно, вплоть до кэрнел паники, а вот если swap отключить перед тем как диск вытаскивать, то ничего не будет.

Да, диск всегда заранее предупреждает «я сдохну через месяц, ровно 30 августа в 18:05:45», не забудь своп отключить"

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от erzent

на это и есть системы мониторинга, например zabbix

У тебя ни разу не сдыхал диск на ровном месте, без предупреждений в smart?

Deleted
()
Ответ на: комментарий от Deleted

прикинь нет,у меня стоят нормальные бесперебойники и батареи на 4 часа работы при полной нагрузке,поэтому у меня на серверах всё нормально.

erzent ☆☆
()
Ответ на: комментарий от erzent

Нормальные бесперебойники тут ни при чём.

Диски иногда дохнут сами по себе, без записей в smart.

Deleted
()
Ответ на: комментарий от erzent

Вообще 10 рейд надо, но тогда и дисков надо больше.Хотя лично по мне так, софтовый ред бред, ток железный надо.

«Железный» рейд нужен только если требуется высокая производительность при большом количестве дисков. В остальных случаях кроме лишнего геморроя он ничего не даст.

Deleted
()
Ответ на: комментарий от Deleted

«Железный» рейд нужен только если требуется высокая производительность при большом количестве дисков.

Не совсем. Железный рейд нужен тогда, когда замену дисков требуется обеспечивать неквалифицированному персоналу.

Deleted
()
Ответ на: комментарий от Deleted

Ну если выйдет из строя внезапно, то да, хреново будет.

С другой стороны свопа на софтовом зеркале я ещё не встречал нигде. Либо резервируют вообще всё, либо ничего.

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от darkenshvein

Этот раздел отвечает за SWAP и так просто его не убрать

вообще. в квотезы.

darkenshvein ★★★★★
()
Ответ на: комментарий от sT331h0rs3

логичнее вообще не делать рейд, а прописать на всех разделах одинаковый приоритет, штобы сам своп работал как на рейде.

darkenshvein ★★★★★
()
Ответ на: комментарий от sT331h0rs3

С другой стороны свопа на софтовом зеркале я ещё не встречал нигде. Либо резервируют вообще всё, либо ничего.

«Опыт, сын ошибок трудных» :)

Deleted
()
Ответ на: комментарий от darkenshvein

если это не особое ядро. Может на NUMA и по другому реагирует, хз.

darkenshvein ★★★★★
()
Ответ на: комментарий от darkenshvein

Ну вот. А нафига делать swap не на зеркале, рискуя падением сервера?

Deleted
()
Ответ на: комментарий от Deleted

То же самое, что и в случае с RAID0. Если уже решили не использовать резервирование на swap (хоть я с этим и не согласен), то RAID0 для swap бесполезен.

Black_Shadow ★★★★★
()

Я вообще рекомендую использовать LVM поверх зеркала, а вот уже в LVM - и swap, и всё остальное.

Black_Shadow ★★★★★
()
Ответ на: комментарий от PIKNIK

Программный рейд развёрнут тут потому, что данная система развёрнута на обычном домашнем ПК, которому свой RAID-контроллер даже в эротических снах не снится.

Почитал я Ваши сообщения и решил, что мне надежность работы системы важнее, чем быстродействие, поэтому я послушал советы белого медведя в воде (Dimez) и поставил RAID1 на SWAP.

Сегодня с утра собрался с мыслями и принялся за перестройку.
Вот что я сделал:

# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc1[0] sdb1[1]
152512 blocks [2/2] [UU]

md2 : active raid0 sdb3[1] sda3[0]
2056192 blocks 64k chunks

md0 : active raid1 sdc2[0] sdb2[1]
155107456 blocks [2/2] [UU]

unused devices: <none>

# free
total used free shared buffers cached
Mem: 2064452 2028484 35968 0 126324 1426424
-/+ buffers/cache: 475736 1588716
Swap: 0 0 0

# cat /etc/fstab
/dev/md0 / ext3 defaults 1 1
/dev/md1 /boot ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/md2 swap swap defaults 0 0

# swapoff /dev/md
md0 md1 md2

# swapoff /dev/md2
swapoff: /dev/md2: Недопустимый аргумент

# mdadm -S /dev/md2
mdadm: stopped /dev/md2

# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdc1[0] sdb1[1]
152512 blocks [2/2] [UU]

md0 : active raid1 sdc2[0] sdb2[1]
155107456 blocks [2/2] [UU]

unused devices: <none>

# fdisk -l /dev/sdb
Диск /dev/sdb: 160.0 ГБ, 160041885696 байт
255 heads, 63 sectors/track, 19457 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 19 152586 fd Автоопределение Linux raid
/dev/sdb2 20 19329 155107575 fd Автоопределение Linux raid
/dev/sdb3 19330 19457 1028160 fd Автоопределение Linux raid

# fdisk -l /dev/sdc
Диск /dev/sdc: 320.0 ГБ, 320072933376 байт
255 heads, 63 sectors/track, 38913 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 1 19 152586 fd Автоопределение Linux raid
/dev/sdc2 20 19329 155107575 fd Автоопределение Linux raid
/dev/sdc3 19330 19457 1028160 fd Автоопределение Linux raid

# mdadm --zero-superblock /dev/sdb3

# mdadm --zero-superblock /dev/sda3

# mdadm --create /dev/md2 --level=1 --raid-device=2 /dev/sdb3 /dev/sdc3
mdadm: array /dev/md2 started.

# cat /proc/mdstat
Personalities : [raid0] [raid1]
md2 : active raid1 sdc3[1] sdb3[0]
1028096 blocks [2/2] [UU]
[==>..................] resync = 10.1% (104960/1028096) finish=0.4min speed=34986K/sec

md1 : active raid1 sdc1[0] sdb1[1]
152512 blocks [2/2] [UU]

md0 : active raid1 sdc2[0] sdb2[1]
155107456 blocks [2/2] [UU]

unused devices: <none>

# cat /proc/mdstat
Personalities : [raid0] [raid1]
md2 : active raid1 sdc3[1] sdb3[0]
1028096 blocks [2/2] [UU]

md1 : active raid1 sdc1[0] sdb1[1]
152512 blocks [2/2] [UU]

md0 : active raid1 sdc2[0] sdb2[1]
155107456 blocks [2/2] [UU]

unused devices: <none>

# mkswap /dev/md2
Устанавливается пространство для свопинга версии 1, размер = 1052766 кБ

# swapon /dev/md2

# free
total used free shared buffers cached
Mem: 2064452 2041400 23052 0 132068 1427172
-/+ buffers/cache: 482160 1582292
Swap: 1028088 0 1028088

# cat /etc/fstab
/dev/md0 / ext3 defaults 1 1
/dev/md1 /boot ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/md2 swap swap defaults 0 0

# swapon -s
Filename Type Size Used Priority
/dev/md2 partition 1028088 0 -1

# ls -la /dev/md2
brw-r----- 1 root disk 9, 2 Авг 1 08:57 /dev/md2


Вроде всё работает.
Спасибо Вам всем за советы! Вы мне очень помогли в данном вопросе! Удачи Вам в ваших делах!

PIKNIK
() автор топика
Ответ на: комментарий от PIKNIK

Извеняюсь, текст в спойлер не спрятался.

PIKNIK
() автор топика
Ответ на: комментарий от sT331h0rs3

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

Да, ведь свопу так критична скорость линейного чтения, как же... Наверное, туда фильмы в HD-качестве вытесняются.

YAR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.