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

Ошибка восстановления raid-1

 , ,


0

1

Добрый день! Имею сервер с 4 дисками. По 2 диска собраны в 2 программных raid1 массива /dev/md0 (/dev/sda7+/dev/sdb3) и /dev/md1 (/dev/sdc1+/dev/sdd1). Эти raid массивы объединены в логическую группу LVM, в которой создан один логический том с файловой системой xfs, занимающий весь объем.

Недавно вышел из строя один из дисков (/dev/sdd1) и перестал определяться в системе. Был куплен абсолютно такой же диск и установлен в сервер

Скопировал таблицу разделов на новый диск с рабочего командой

sfdisk -d /dev/sdc | sfdisk /dev/sdd

Добавил новый диск в /dev/md1 командой

mdadm --manage /dev/md1 --add /dev/sdd1

После перезагрузки начинается восстановление, но при достижении 2,3% восстановление обрывается. Диск /dev/sdd1 принимает статус SPARE.

В dmesg выходит ошибка чтения с диска /dev/sdc1.

SMART диска /dev/sdc1

smartctl version 5.36 [x86_64-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     MB2000EAMZF
Serial Number:    9WM0ETAB
Firmware Version: HPG1
User Capacity:    2▒000▒398▒934▒016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Not recognized. Minor revision code: 0x28
Local Time is:    Wed Oct 11 11:29:24 2017 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 ( 609) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.
Conveyance self-test routine
recommended polling time:        (   3) minutes.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   070   056   044    Pre-fail  Always       -       25835348947
  3 Spin_Up_Time            0x0003   093   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       76
  5 Reallocated_Sector_Ct   0x0033   096   096   036    Pre-fail  Always       -       168
  7 Seek_Error_Rate         0x000f   085   060   030    Pre-fail  Always       -       369643805
  9 Power_On_Hours          0x0032   041   041   000    Old_age   Always       -       51821
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       78
180 Unknown_Attribute       0x003b   100   100   000    Pre-fail  Always       -       420267169
184 Unknown_Attribute       0x0032   100   100   003    Old_age   Always       -       0
187 Unknown_Attribute       0x0032   085   085   000    Old_age   Always       -       15
188 Unknown_Attribute       0x0032   100   097   000    Old_age   Always       -       26
189 Unknown_Attribute       0x003a   099   099   000    Old_age   Always       -       1
190 Unknown_Attribute       0x0022   061   055   045    Old_age   Always       -       690094119
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       38
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       78
194 Temperature_Celsius     0x0022   039   045   000    Old_age   Always       -       39 (Lifetime Min/Max 0/20)
195 Hardware_ECC_Recovered  0x001a   048   018   000    Old_age   Always       -       65545171
196 Reallocated_Event_Count 0x0033   096   096   036    Pre-fail  Always       -       168
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 174 (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 174 occurred at disk power-on lifetime: 51820 hours (2159 days + 4 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 65 70 20 05

  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 80 01 70 20 45 00   8d+00:50:15.291  [RESERVED FOR SERIAL ATA]
  ef 10 02 00 00 00 a0 00   8d+00:50:15.291  SET FEATURES [Reserved for Serial ATA]
  ec 00 00 00 00 00 a0 00   8d+00:50:15.290  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   8d+00:50:15.290  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   8d+00:50:15.290  SET FEATURES [Reserved for Serial ATA]

Error 173 occurred at disk power-on lifetime: 51820 hours (2159 days + 4 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 65 70 20 05

  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 80 01 70 20 45 00   8d+00:50:12.635  [RESERVED FOR SERIAL ATA]
  ef 10 02 00 00 00 a0 00   8d+00:50:12.635  SET FEATURES [Reserved for Serial ATA]
  ec 00 00 00 00 00 a0 00   8d+00:50:12.634  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   8d+00:50:12.634  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   8d+00:50:12.633  SET FEATURES [Reserved for Serial ATA]

Error 172 occurred at disk power-on lifetime: 51820 hours (2159 days + 4 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 65 70 20 05

  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 80 01 70 20 45 00   8d+00:50:09.971  [RESERVED FOR SERIAL ATA]
  60 00 80 01 71 20 45 00   8d+00:50:09.970  [RESERVED FOR SERIAL ATA]
  ef 10 02 00 00 00 a0 00   8d+00:50:09.970  SET FEATURES [Reserved for Serial ATA]
  ec 00 00 00 00 00 a0 00   8d+00:50:09.969  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   8d+00:50:09.969  SET FEATURES [Set transfer mode]

Error 171 occurred at disk power-on lifetime: 51820 hours (2159 days + 4 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 65 70 20 05

  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 80 01 71 20 45 00   8d+00:50:07.314  [RESERVED FOR SERIAL ATA]
  60 00 80 01 70 20 45 00   8d+00:50:07.314  [RESERVED FOR SERIAL ATA]
  ef 10 02 00 00 00 a0 00   8d+00:50:07.314  SET FEATURES [Reserved for Serial ATA]
  ec 00 00 00 00 00 a0 00   8d+00:50:07.313  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   8d+00:50:07.313  SET FEATURES [Set transfer mode]

Error 170 occurred at disk power-on lifetime: 51820 hours (2159 days + 4 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 65 70 20 05

  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 80 01 70 20 45 00   8d+00:50:04.631  [RESERVED FOR SERIAL ATA]
  60 00 80 01 71 20 45 00   8d+00:50:04.630  [RESERVED FOR SERIAL ATA]
  60 00 80 81 71 20 45 00   8d+00:50:04.630  [RESERVED FOR SERIAL ATA]
  60 00 80 01 72 20 45 00   8d+00:50:04.630  [RESERVED FOR SERIAL ATA]
  60 00 80 01 7c 20 45 00   8d+00:50:04.629  [RESERVED FOR SERIAL ATA]

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

В дополнение привожу состояние /dev/md1

[root@e5 mapper]# mdadm -D /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Thu Oct 27 14:33:11 2011
     Raid Level : raid1
     Array Size : 1863013184 (1776.71 GiB 1907.73 GB)
  Used Dev Size : 1863013184 (1776.71 GiB 1907.73 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Oct 11 11:38:49 2017
          State : clean, degraded
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

           UUID : 2bafe702:89d5e11f:da4519c3:ba339ffc
         Events : 0.20868067

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       2       8       49        1      spare rebuilding   /dev/sdd1

Подскажите, как можно вернуть в рабочее состояние массив /dev/md1?


Уверены, что из строя вышел именно sdd?

sdc точно не читается, если его попробовать прочитать в /dev/null?

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

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

Вот записи в dmesg, из-за которых я думаю и прерывается восстановление

kern.warn<4>: Oct 11 09:17:49 e5 kernel:  disk 0, wo:0, o:1, dev:sdc1
kern.notice<5>: Oct 11 09:19:24 e5 kernel: sd 2:0:0:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
kern.notice<5>: Oct 11 09:19:24 e5 kernel: sd 2:0:0:0: [sdc] Write Protect is off
kern.notice<5>: Oct 11 09:19:24 e5 kernel: sd 2:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
kern.info<6>: Oct 11 09:19:24 e5 kernel:  sdc:
kern.info<6>: Oct 11 09:19:24 e5 kernel:  sdd: sda1 sda2 sda3 sda4 < sdc1
kern.notice<5>: Oct 11 09:19:24 e5 kernel: sd 2:0:0:0: [sdc] Attached SCSI disk
kern.info<6>: Oct 11 09:19:24 e5 kernel: md: bind<sdc1>
kern.warn<4>: Oct 11 09:19:24 e5 kernel:  disk 0, wo:0, o:1, dev:sdc1
kern.info<6>: Oct 11 09:31:08 e5 kernel: sd 2:0:0:0: [sdc] Unhandled sense code
kern.info<6>: Oct 11 09:31:08 e5 kernel: sd 2:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kern.info<6>: Oct 11 09:31:08 e5 kernel: sd 2:0:0:0: [sdc] Sense Key : Medium Error [current] [descriptor]
kern.info<6>: Oct 11 09:31:08 e5 kernel: sd 2:0:0:0: [sdc] Add. Sense: Unrecovered read error - auto reallocate failed
kern.info<6>: Oct 11 09:31:08 e5 kernel: sd 2:0:0:0: [sdc] CDB: Read(10): 28 00 05 20 70 01 00 00 80 00
kern.err<3>: Oct 11 09:31:08 e5 kernel: end_request: I/O error, dev sdc, sector 86012005
kern.info<6>: Oct 11 09:31:24 e5 kernel: sd 2:0:0:0: [sdc] Unhandled sense code
kern.info<6>: Oct 11 09:31:24 e5 kernel: sd 2:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kern.info<6>: Oct 11 09:31:24 e5 kernel: sd 2:0:0:0: [sdc] Sense Key : Medium Error [current] [descriptor]
kern.info<6>: Oct 11 09:31:24 e5 kernel: sd 2:0:0:0: [sdc] Add. Sense: Unrecovered read error - auto reallocate failed
kern.info<6>: Oct 11 09:31:24 e5 kernel: sd 2:0:0:0: [sdc] CDB: Read(10): 28 00 05 20 70 61 00 00 08 00
kern.err<3>: Oct 11 09:31:24 e5 kernel: end_request: I/O error, dev sdc, sector 86012005
kern.alert<1>: Oct 11 09:31:24 e5 kernel: raid1: sdc: unrecoverable I/O read error for block 86011904

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

Чтение с sdc проходит нормально

dd if=/dev/sdc of=/dev/null bs=100M count=1
1+0 записей считано
1+0 записей написано
 скопировано 104857600 байт (105 MB), 1,12943 c, 92,8 MB/c

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

count=1 уберите, нужно посмотреть, читается ли весь диск. Если там действительно ошибка чтения, а старый sdd вобще не распознаётся системой, значит у вас умерли оба диска в зеркале и плохо это.

Вобще, диску с ненулевым Reallocated_Sector_Ct как бы не место в raid.

В теории можно попробовать скопировать старный sdc на новый sdd полностью, с помощью ddrescue и попрбовать заменить sdc на sdd, может система с него поднимит raid в degrade mode и тогда покупать ещё один диск и синхать на него. И, если повезёт и ничитающиеся блоки окажутся не занятыми данными файловой системы, то всё обойдётся.

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

А сработает ли следующий вариант? - добавляем к серверу еще один диск 2 Tb - добавляем его к логической группе - переносим данные с md1 - удаляем md1 из логической группы - разбираем raid md1 - создаем снова raid md1 - переносим обратно на него данные - удаляем добавленный диск из логической группы

Livito
() автор топика
Ответ на: комментарий от mky
dd if=/dev/sdc of=/dev/null bs=512
dd: чтение `/dev/sdc': Ошибка ввода/вывода
86012000+0 записей считано
86012000+0 записей написано
 скопировано 44038144000 байт (44 GB), 481,532 c, 91,5 MB/c
Livito
() автор топика
Ответ на: комментарий от mky

count=1 уберите, нужно посмотреть, читается ли весь диск. Если там действительно ошибка чтения, а старый sdd вобще не распознаётся системой, значит у вас умерли оба диска в зеркале и плохо это.

ИМХО лучше сразу при помощи ddrescue из под какого-нибудь livecd перенести с оставшегося полуживого диска все уцелевшие данные на новый. Иначе есть шанс, что станет хуже. А пока копируется - идти за ещё одним диском подходящего объёма.

А вообще, очень рекомендую настроить периодическую проверку массивов mdadm. Обычно это делается раз в неделю и помогает отлавливать подобные проблемы (частичную деградацию одного из дисков) на раннем этапе, до того как станет совсем плохо.

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

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

Оффтоп. Это адски просаживает производительность.

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

Это адски просаживает производительность.

Да, просаживает. Но не адски, так как скорость проверки можно регулировать. А без этого рейд использовать просто опасно, так как сразу на нескольких дисках могут умереть одинаковые сектора, занятые редко используемыми данными. И об этом станет известно только тогда, когда кто-нибудь попробует эти данные прочитать. Пример - в данном топике.

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

Вот это:

А сработает ли следующий вариант? - добавляем к серверу еще один диск 2 Tb - добавляем его к логической группе - переносим данные с md1 - удаляем md1 из логической группы - разбираем raid md1 - создаем снова raid md1 - переносим обратно на него данные - удаляем добавленный диск из логической группы

?

Не очень понятно чего ты этим добьёшься. Диск уже нормально не читается, а значит миграция данных средствами LVM тоже споткнётся на нечитаемых секторах. Если конечно эти сектора не приходятся на свободное место в VG, не аллоцированное под LV.

Я бы начал пытаться скопировать всё, что уцелело, при помощи ddrescue. А если данные реально ценные, то вообще отнёс бы диск к специалистам.

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

В догонку...

А если данные реально ценные, то вообще отнёс бы диск к специалистам.

Кстати, на случай если на частично живом диске важные данные всё-таки не уцелели, умерший диск лучше пока в мусорное ведро не выбрасывать. Есть шанс, что специалисты его смогут оживить и вытащить оттуда данные.

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

Если я после разбора md1 заменю неисправный диск новым и соберу уже новый raid на 2-х новых, а также при условии, что на битые сектора приходится свободное место в VG, то в принципе я не должен потерять никаких данных. Или я не прав?

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

Если я после разбора md1 заменю неисправный диск новым и соберу уже новый raid на 2-х новых, а также при условии, что на битые сектора приходится свободное место в VG, то в принципе я не должен потерять никаких данных. Или я не прав?

Проблема тут в том, что если ты не прав, то ситуация станет ещё хуже, чем она есть сейчас.

Deleted
()

Я эту процедуру делаю немного иначе.

Копирую разделы:
sudo dd if=/dev/sda of=/dev/sdb bs=1M
Синхронизирую :
sudo mdadm /dev/md0 --add /dev/sdb1

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

Следующая команда лучше всего подходит для просмотра статуса синхронизации устройства:

watch -n1 cat /proc/mdstat

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

у него разные разделы на диске под raid выделяются upd: хотя нет

sfdisk -d /dev/sdc | sfdisk /dev/sdd

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

Вообще-то в первую очередь надо смарт хардов мониторить, а не рэйд проверять.

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

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

Если уж пытаться вычитывать данные, то из файлов на xfs, в надежде, что нечитаемые сектора не знаняты данными(не заняты важными данными). Но, лучше сначала ddrescue, я не уверен, но, если у вас произойдёт ошибка чтения не просто с диска, а с raid-устройства, то ваш sdc может быть помечен как выбыший из raid и на нём потом не будет собираться /dev/md1.

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

Подскажите, если я с помощью ddrescue скопирую данные с sdc на sdd, а затем на место sdc поставлю диск sdd, то будет ли собираться raid1, ведь в файле /etc/mdadm.conf будет указан UUID старого диска?

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

Подскажите, если я с помощью ddrescue скопирую данные с sdc на sdd, а затем на место sdc поставлю диск sdd, то будет ли собираться raid1, ведь в файле /etc/mdadm.conf будет указан UUID старого диска?

UUID разделов точно так же скопируются, так что должен. Но сначала лучше бы пофайлово всё прочитать попробовать.

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

Проблема тут в том, что если ты не прав, то ситуация станет ещё хуже, чем она есть сейчас.

А LVM не прекратит операцию в случае, если данные не перенесёт ? Мне кажется, что просто операция по выводу md1 из логической группы обломается, и всё.

Я бы попробовал просто всё скопировать, пофайлово, чтобы узнать, что там не прочитается. А то и не узнаешь потом, пока не понадобится.

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

А LVM не прекратит операцию в случае, если данные не перенесёт ? Мне кажется, что просто операция по выводу md1 из логической группы обломается, и всё.

По идее прекратит. В результате часть данных останется на старом PV на битом диске, а часть - уже будет на новом PV. Итог: -1 диск, на который можно было бы просто скопировать все данные, да ещё и данные размазаны по дискам хз как.

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

По идее прекратит. В результате часть данных останется на старом PV на битом диске, а часть - уже будет на новом PV

Не уверен на 100%, но у меня опыт показал обратное, когда я дома налетел на проблему с дисками st3000dm001 ( лучи поноса в seagate ). Один диск помер совсем а на другом были битые сектора. Ребилд mdadm raid1 так же не проходил, а вот pvmove спокойно унёс все LV. После fsck жил дальше

Но согласен, лучше бы тупо выполнить dd на новый диск с попуском ошибок

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

Ребилд mdadm raid1 так же не проходил, а вот pvmove спокойно унёс все LV.

А у тебя точно на битых секторах были LV?

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

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

только не забудь сначала убрать из raid'а разделы, которые не смогли синхронизироваться

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

Согласен что смарт не всегда спасает, но для случая ТС это как раз тот самый вариант. У него уже realloc пошел, если бы был мониторинг среагировал бы раньше.
ЗЫ Для сервачных хардов смарт практически всегда выручает.

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

Переназначение секторов возможно только при записи. У автора проблема именно с чтением. И ни SMART, ни кто-либо ещё никогда не узнает о том, что данные нечитаемы до попытки их прочитать. Поэтому просто мониторинг SMART бесполезен без периодического перечитывания _всех_ данных с диска. Именно это и делает «raid check» в случае RAID1.

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

Переназначение секторов возможно только при записи.

Естессно и факт его возникновения уже какбэ намекает что хард надо менять.

У автора проблема именно с чтением.

Следствие умирающего харда

anc ★★★★★
()

ну dd шками по уже запоротым дискам это слишком. А из своего могу только «bsd»- не райдовую, а по 1 диск восстановления настройку предл.:>>

 #Enables support>>
    for HPLIP>>
    hpiod_enable="NO">>
    hpssd_enable="NO">>
  ad0:*******MB<WDC>>
  WD****01.03A01> >>
  at ata0-master>>
     SATA 300.


  Может, так, пригодится?
anonymous
()
Ответ на: комментарий от router

Как вариант (я пользовал).

Сделать образ клонезилой с пропуском битых секторов.

Потом впихнуть его на диск.

Или полечить Викторией.

Не бейте ламера :)

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

А у тебя точно на битых секторах были LV?

Да. Был один крупный LV на весь PV. Битые сектора приходились не на метаданные, а именно на занятые экстенты

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

Завтра займусь восстановлением. Планирую следующий порядок действий. Делаю подобное в первый раз, поэтому прошу подскажите, если в чем ошибаюсь

  1. Отключаю сервер и переставляю диски sdc и sdd на другой компьютер. Допустим диски определятся также, как и на старом сервере, т.е. с битыми секторами sdc, новый - sdd
  2. Проверяем, что диски не примонтировались. Запускаем первый проход с пропуском ошибок
    ddrescue -f -n /dev/sdc /dev/sdd mapfile
  3. После окончания первого прохода запускаем второй проход с прямым доступом и с повторными попытками чтения
    ddrescue -d -f -r3 /dev/sdc /dev/sdd mapfile
  4. Ждем завершения второго прохода. Затем отключаем компьютер. Вынимаем неисправный диск. Снова включаем компьютер
    • Далее надо проверить файловую систему на диске. Поскольку диск был в составе LVM, то выполняем действия
    • Сканируем диски на наличие VG
      vgscan --mknodes
    • Активируем VG
      vgchange -ay
    • Запускаем проверку файловой системы xfs
      xfs_check /dev/vgXXX
  5. Дожидаемся завершения проверки. Отключаем компьютер и возвращаем новый диск обратно на сервер
Livito
() автор топика
Ответ на: комментарий от Livito

Результат первого прохода

sudo ddrescue -f -n /dev/sdb /dev/sdc ./mapfile.log

GNU ddrescue 1.16
Press Ctrl-C to interrupt
rescued:     2000 GB,  errsize:    4096 B,  current rate:    7073 kB/s
   ipos:    44038 MB,   errors:       1,    average rate:   54696 kB/s
   opos:    44038 MB,     time since last successful read:       0 s
Finished

Результат второго прохода

sudo ddrescue -d -f -r3 /dev/sdb /dev/sdc ./mapfile.log

GNU ddrescue 1.16
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:     2000 GB,  errsize:    4096 B,  errors:       1
Current status
rescued:     2000 GB,  errsize:     512 B,  current rate:        0 B/s
   ipos:    44038 MB,   errors:       1,    average rate:      325 B/s
   opos:    44038 MB,     time since last successful read:       3 s
Finished                       

Проверил файловую систему не удалось, т.к. команда vgscan не увидела ни одной группы. Попробовал поставить диск обратно в сервер. Все заработало, raid1 собрался, логический диск заработал

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