Назад | Перейти на главную страницу

Спасите Raid 1 с выделенного сервера

Имею выделенный сервер (Hetzner EX4). Однажды я перезагрузил сервер, но он не запускался. Служба поддержки клиентов сообщила мне, что один из жестких дисков неисправен, и активировала систему восстановления (Linux). На моем сервере 2 жестких диска по 3 ТБ на Raid1 (почти уверен в этом!)

Итак, я предполагаю, что по крайней мере один из дисков может быть использован, но я понятия не имею, как получить данные с моего сервера. Я провел небольшое исследование и попытался использовать partimage (и partimage server), но, поскольку я не понимаю, как диски и разделы работают в Linux, я не знаю, как получить данные с сервера.

Я даже не знаю, что я вижу, это диски, разделы или что-то еще!

Не уверен, но думаю, это может быть полезно:

root@rescue /dev # cd dev/
-bash: cd: dev/: No such file or directory
root@rescue /dev # dir
1-1            cpu              full   loop4         mouse1              ptyp2  ptype  ram4    sda3  stderr  tty16  tty27  tty38  tty49  tty6   ttyp4  ttyS0    vcs2   vga_arbiter
2-1            cpu_dma_latency  fuse   loop5         net                 ptyp3  ptypf  ram5    sda4  stdin   tty17  tty28  tty39  tty5   tty60  ttyp5  ttyS1    vcs3   vhost-net
2-1.4          disk             hpet   loop6         network_latency     ptyp4  ram0   ram6    sda5  stdout  tty18  tty29  tty4   tty50  tty61  ttyp6  ttyS2    vcs4   watchdog
2-1.6          event0           input  loop7         network_throughput  ptyp5  ram1   ram7    sdb   tty     tty19  tty3   tty40  tty51  tty62  ttyp7  ttyS3    vcs5   watchdog0
autofs         event1           kmem   loop-control  null                ptyp6  ram10  ram8    sdb1  tty0    tty2   tty30  tty41  tty52  tty63  ttyp8  urandom  vcs6   xconsole
block          event2           kmsg   MAKEDEV       port                ptyp7  ram11  ram9    sdb2  tty1    tty20  tty31  tty42  tty53  tty7   ttyp9  usbmon0  vcsa   zero
bsg            event3           kvm    mapper        ppp                 ptyp8  ram12  random  sdb3  tty10   tty21  tty32  tty43  tty54  tty8   ttypa  usbmon1  vcsa1
btrfs-control  event4           log    md            psaux               ptyp9  ram13  rtc     sdb4  tty11   tty22  tty33  tty44  tty55  tty9   ttypb  usbmon2  vcsa2
bus            event5           loop0  mem           ptmx                ptypa  ram14  rtc0    sdb5  tty12   tty23  tty34  tty45  tty56  ttyp0  ttypc  usbmon3  vcsa3
char           event6           loop1  mice          pts                 ptypb  ram15  sda     sg0   tty13   tty24  tty35  tty46  tty57  ttyp1  ttypd  usbmon4  vcsa4
console        fb0              loop2  microcode     ptyp0               ptypc  ram2   sda1    sg1   tty14   tty25  tty36  tty47  tty58  ttyp2  ttype  vcs      vcsa5
core           fd               loop3  mouse0        ptyp1               ptypd  ram3   sda2    shm   tty15   tty26  tty37  tty48  tty59  ttyp3  ttypf  vcs1     vcsa6
root@rescue /dev # fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
256 heads, 63 sectors/track, 363376 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x8ab49420

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 3000.6 GB, 3000592982016 bytes
256 heads, 63 sectors/track, 363376 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.
root@rescue /dev #

Может ли кто-нибудь дать мне совет или указать правильное направление для решения моей проблемы? Может быть, я все делаю неправильно, и мне следует применить другой подход, а может быть, это вообще невозможно: /

ОБНОВЛЕНИЕ 1 Во-первых, позвольте мне поблагодарить вас за все ваши предложения. Я пробовал несколько вещей, но не уверен, что означают результаты.

Во-первых, вы уже видели результат fdisk -l (Я не уверен, что / dev / sda имеет идентификатор диска: 0x00000000, это подсказка ..

Я пытался установить /dev/sda1 и это сработало. Однако, если я перейду в этот каталог, я смогу увидеть только папку EFI. Это нормально?

Кроме того, если я попытаюсь установить /dev/sdb1, Я получаю «монтирование: необходимо указать тип файловой системы».

Если я сбегу cat /proc/mdstat Я получаю это:

Personalities : [raid1]
unused devices: <none>

ОБНОВЛЕНИЕ 2 Следуя совету Кристиана Чупиту, я запустил smartctl на обоих дисках, и вот результаты:

sdb:

root@rescue / # smartctl -l error /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.10.36] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
ATA Error Count: 242 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 242 occurred at disk power-on lifetime: 20101 hours (837 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 8c fe a2 0b  Error: UNC at LBA = 0x0ba2fe8c = 195231372

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 8c fe a2 4b 00   7d+19:32:38.593  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00   7d+19:32:38.559  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00   7d+19:32:38.559  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   7d+19:32:38.559  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   7d+19:32:38.559  SET FEATURES [Set transfer mode]

Error 241 occurred at disk power-on lifetime: 20101 hours (837 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 8b fe a2 0b  Error: UNC at LBA = 0x0ba2fe8b = 195231371

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 8c fe a2 4b 00   7d+19:32:35.600  READ FPDMA QUEUED
  60 00 01 8b fe a2 4b 00   7d+19:32:35.600  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00   7d+19:32:35.567  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00   7d+19:32:35.567  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   7d+19:32:35.566  IDENTIFY DEVICE

Error 240 occurred at disk power-on lifetime: 20101 hours (837 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 8d fe a2 0b  Error: UNC at LBA = 0x0ba2fe8d = 195231373

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 8b fe a2 4b 00   7d+19:32:32.607  READ FPDMA QUEUED
  60 00 01 8c fe a2 4b 00   7d+19:32:32.606  READ FPDMA QUEUED
  60 00 01 8d fe a2 4b 00   7d+19:32:32.606  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00   7d+19:32:32.574  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00   7d+19:32:32.573  READ NATIVE MAX ADDRESS EXT

Error 239 occurred at disk power-on lifetime: 20101 hours (837 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 8a fe a2 0b  Error: UNC at LBA = 0x0ba2fe8a = 195231370

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 8d fe a2 4b 00   7d+19:32:29.563  READ FPDMA QUEUED
  60 00 01 8c fe a2 4b 00   7d+19:32:29.563  READ FPDMA QUEUED
  60 00 01 8b fe a2 4b 00   7d+19:32:29.563  READ FPDMA QUEUED
  60 00 01 8a fe a2 4b 00   7d+19:32:29.563  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00   7d+19:32:29.531  SET FEATURES [Reserved for Serial ATA]

Error 238 occurred at disk power-on lifetime: 20101 hours (837 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 8e fe a2 0b  Error: UNC at LBA = 0x0ba2fe8e = 195231374

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 01 8a fe a2 4b 00   7d+19:32:26.521  READ FPDMA QUEUED
  60 00 01 8b fe a2 4b 00   7d+19:32:26.521  READ FPDMA QUEUED
  60 00 01 8c fe a2 4b 00   7d+19:32:26.521  READ FPDMA QUEUED
  60 00 01 8d fe a2 4b 00   7d+19:32:26.521  READ FPDMA QUEUED
  60 00 01 8e fe a2 4b 00   7d+19:32:26.520  READ FPDMA QUEUED

sda:

root@rescue / # smartctl -t short /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.10.36] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

Short INQUIRY response, skip product id
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

ОБНОВЛЕНИЕ 3 Я сделал lsblk, чтобы узнать, в каких разделах есть данные:

root@rescue / # lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   2.7T  0 disk
├─sda1   8:1    0   200M  0 part
├─sda2   8:2    0     1M  0 part
├─sda3   8:3    0   127M  0 part
├─sda4   8:4    0   2.7T  0 part /mnt
└─sda5   8:5    0 455.5K  0 part
sdb      8:16   0   2.7T  0 disk
├─sdb1   8:17   0     1M  0 part
├─sdb2   8:18   0   127M  0 part
├─sdb3   8:19   0   200M  0 part
├─sdb4   8:20   0   2.7T  0 part
└─sdb5   8:21   0 455.5K  0 part
loop0    7:0    0   1.5G  1 loop

Затем я установил sda4. Я могу видеть файловую систему (модуль C в Windows), но когда я захожу внутрь каталога (скажем, «Program Files») и пытаюсь перечислить все файлы, я получаю ошибку ввода-вывода:

dir: reading directory .: Input/output error

Я все равно попытался отправить всю файловую систему через ftp с помощью ncftpput, и большинство файлов выдало исключение ввода-вывода.

Если я попытаюсь смонтировать sdb4, я получу такую ​​ошибку:

root@rescue / # mount /dev/sdb4 /mnt
ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read vcn 0x28: Input/output error
Failed to mount '/dev/sdb4': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.

ОБНОВЛЕНИЕ 4

Я безуспешно пробовал ntfsfix:

root@rescue / # ntfsfix /dev/sdb4
Mounting volume... ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read vcn 0x28: Input/output error
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read vcn 0x28: Input/output error
Remount failed: Input/output error

Вам нужно заменить диск. Сейчас.

В Linux ваш массив будет отображаться как отдельный диск, если он не разбит на разделы или не разделен контроллером на разные виртуальные диски. Вы должны иметь возможность использовать последовательную консоль (если она предоставляется хостом) для загрузки в контроллер вашего сервера и посмотреть, как он настроен.

Но замените диск или извинитесь. В зависимости от возраста ваших дисков время выхода из строя второго может приближаться, и вы действительно хотите завершить восстановление. перед это не удается.

Сначала проверьте свои резервные копии. Если все пойдет хорошо, они вам не понадобятся, но это очень поможет (эмоционально), когда вы знаете, что ваши данные в безопасности и что вы можете рисковать, не понимая их полностью.

Затем выясните, какой RAID вы использовали. Это может быть аппаратный RAID, но также может быть программный RAID, такой как mdadm. Если вы не помните, что оплата за HW RAID mdadmn вероятна. Подтвердите это и прочтите справочные страницы mdadm.

Затем выясните, какой диск сломан, а какой все еще в порядке.

Смонтируйте диск, и это нормально, чтобы получить ухудшенный RAID1. К этой проверке cat /proc/mdstat. Если вам повезет, вы получите примерно такой результат:

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
      24418688 blocks [2/1] [U_]

В этом примере mdadm загружается и распознает, что второй диск вышел из строя. Если вы не получаете этот вывод, проверьте, поддерживает ли ваше ядро ​​mdadm или загружен ли нужный модуль. При желании создайте новое устройство md. По памяти команда для этого mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb2. (Проверьте это! И поймите, что это предполагает сбой второго диска. Если это была первая запись, создайте один с отсутствующим sda!).

Как только вы получите работающее устройство / dev / mdX, скопируйте все свои данные в свободное место. Возможно, вам это не понадобится, но вы хотите быть уверены, что ваши резервные копии полностью обновлены. Только после этого попросите своего провайдера заменить сломанный диск на новый и добавить новый диск в массив RAID.

предостережения:

  1. Предполагается, что у вас есть резервные копии или вы можете прочитать руководство.
  2. Это предполагает, что диск был разбит на разделы как один большой RAID1. Это вероятно, но не гарантировано. (Можно было разбить диск на несколько разделов и разбить их на RAID). Однако путь с наименьшими усилиями - один большой диск RAID1, и, поскольку это меньше работы, он в основном используется по умолчанию.

У вас должна быть возможность смонтировать жесткий диск, который все еще подключен к сети.

Попробуйте команду mount /dev/sda1 /mnt

Если эта команда работает, она смонтирует файловую систему под /mnt. Перейдите в эту папку, и вы сможете увидеть файлы и папки. Просто сделайте резервную копию нужной информации и следуйте совету Джонатана.

Вы можете заменить неисправный жесткий диск на хороший, и он должен отремонтировать сам себя. Возможно, ваша реализация RAID отличается, и вам может потребоваться обратиться к документации вашего поставщика для получения дополнительных рекомендаций. Однако, если файловая система была повреждена программным обеспечением, а не плохим жестким диском, RAID не защищает от этого (например, плохая запись происходит на обоих жестких дисках).