LINUX.ORG.RU
решено ФорумAdmin

mdadm RAID1: как по одному вытащить диски и вернуть обратно «нагорячую»?

 , ,


0

1

Как по очереди вытащить диски из mdadm RAID1 и вернуть обратно без потери данных выключения питания? Есть сервер SuperMicro, ОС Debian 9.5. В нем крутится Postgresql на софтовом RAID1 из двух SSD Intel S3700:

md1 : active raid1 sdd1[1] sdc1[0]
937560064 blocks super 1.2 [2/2] [UU]
bitmap: 5/7 pages [20KB], 65536KB chunk

Нужно установить переходники 3.5"->2.5"(сейчас SSD просто воткнуты в слоты, не зафиксированы) . Соответственно, нужно по одному вытащить диски из сервера, привинтить в корзину и установить их обратно. Как это сделать «нагорячую», без остановки сервера?

РЕШЕНИЕ: Просто выдернуть диск, вставить на место. После завершения синхронизации повторить со вторым диском.

Контроллер-то дисков хоть умеет Hot-swap? Выкидываешь диск из рейда, идентифицируешь его, достаешь. Вставляешь новый, дожидаешься окончания синхронизации, повторяешь со вторым.

Pinkbyte ★★★★★ ()

А как ты будешь действовать в случае поломки диска и необходимости его замены?

Учи mdadm, если уж используешь его.

futurama ★★★★★ ()

Пометить один из дисков как сбойный, затем удалить его из массива средствами mdadm.

Вытащить диск, сделать, что хочешь сделать и ткнуть обратно.

Затем добавить диск в массив средствами mdadm и дождаться синхронизации.

То же самое со вторым.

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

Да, Intel® C602 умеет в hot-swap. У меня главная трудность с идентифицированием нужного диска. Вот так диски расположены (вид с морды сервера):

                [CD] 
[HDD][HDD][SSD][SSD]

Вот вывод lshw -c storage -c disk:

  *-storage                 
       description: Serial Attached SCSI controller
       product: C602 chipset 4-Port SATA Storage Control Unit
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:08:00.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: storage pm pciexpress msix bus_master cap_list
       configuration: driver=isci latency=0
       resources: irq:16 memory:de47c000-de47ffff memory:de000000-de3fffff ioport:7000(size=256) memory:de400000-de47bfff
  *-storage
       description: SATA controller
       product: C600/X79 series chipset 6-Port SATA AHCI Controller
       vendor: Intel Corporation
       physical id: 1f.2
       bus info: pci@0000:00:1f.2
       version: 06
       width: 32 bits
       clock: 66MHz
       capabilities: storage msi pm ahci_1.0 bus_master cap_list
       configuration: driver=ahci latency=0
       resources: irq:29 ioport:9050(size=8) ioport:9040(size=4) ioport:9030(size=8) ioport:9020(size=4) ioport:9000(size=32) memory:dfc21000-dfc217ff
  *-scsi:0
       physical id: 66
       logical name: scsi1
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: TOSHIBA HDWD105
          vendor: Western Digital
          physical id: 0.0.0
          bus info: scsi@1:0.0.0
          logical name: /dev/sda
          version: A8J0
          serial: 67S0B3TBS
          size: 465GiB (500GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=bd18f4f3
  *-scsi:1
       physical id: 67
       logical name: scsi2
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: TOSHIBA HDWD105
          vendor: Western Digital
          physical id: 0.0.0
          bus info: scsi@2:0.0.0
          logical name: /dev/sdb
          version: A8J0
          serial: 67SWTYABS
          size: 465GiB (500GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=d8ef54e9
  *-scsi:2
       physical id: 68
       logical name: scsi3
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: INTEL SSDSC2KB96
          physical id: 0.0.0
          bus info: scsi@3:0.0.0
          logical name: /dev/sdc
          version: 0121
          serial: BTYS81650FRH960CGN
          size: 894GiB (960GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=a83739f6
  *-scsi:3
       physical id: 69
       logical name: scsi4
       capabilities: emulated
     *-disk
          description: ATA Disk
          product: INTEL SSDSC2KB96
          physical id: 0.0.0
          bus info: scsi@4:0.0.0
          logical name: /dev/sdd
          version: 0121
          serial: BTYS81650FRL960CGN
          size: 894GiB (960GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=2de9cd49
  *-scsi:4
       physical id: 6a
       logical name: scsi6
       capabilities: emulated
     *-cdrom
          description: DVD reader
          product: DV-28S-Y
          vendor: TEAC
          physical id: 0.0.0
          bus info: scsi@6:0.0.0
          logical name: /dev/cdrom
          logical name: /dev/dvd
          logical name: /dev/sr0
          version: 1.4A
          serial: [
          capabilities: removable audio dvd
          configuration: ansiversion=5 status=nodisc

Например, я хочу выдернуть /dev/sdc. Согласно выводу команды выше, диск находится в scsi:2, т.е. 3м по счёту слева направо слоте:

                [CD] 
[HDD][HDD][sdc][SSD]

Но как убедиться что это действительно так, кроме как выдернуть диск?

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

Например, ты программно можешь выкинуть диск от рейда через mdadm. После этого на него ВНЕЗАПНО пропадет I/O и он перестанет моргать диодами, не? А уж если ты его и из системы через echo > /забыл_ветку_в_proc_или_sys/delete достанешь - так и подавно.

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

И потом добавить его обратно в массив через readd, чтобы минимизировать синхронизацию.

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

Где-то читал про вариант, типа dd if=/dev/sdX of=/dev/null и по активности лампочки выясняем какой диск, но сам такого не пробовал.

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

Где-то читал про вариант, типа dd if=/dev/sdX of=/dev/null и по активности лампочки выясняем какой диск, но сам такого не пробовал.

Это я писал :) Я часто так делаю при замене дисков в дц :)

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

Ну вот и автор нашелся :) Идея же нормальная, поэтому и запомнил. :)

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