LinuxForum.Fans
Тема

Софтовый рейд. Замена диска Debian 6, pve

Автор: SKOmen 15 сообщений 2652 просмотров
#385107

Сделал легкие смарт тесты хардов. Один из них умирает.

Боевая задача:
1) Подготовить машину к выключению для замены харда.
2) Включить машину, присоединить новый хард к рейду, синхронизировать.

Дано:
DDS, стоит у хостера.
Софтовый рейд 1.
Есть сетевое хранилище для бэкапов 100 Гб. Возможно расширить до 500 Гб. Больше - дорого.
На хостовой тачке Debian 6 + ProxMox
Несколько гостевых тачек.

Вводная инфа:

[console]smartctl -A /dev/sdb

Показать
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-23-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
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 093 092 006 Pre-fail Always - 100172791
3 Spin_Up_Time 0x0003 095 095 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 30
5 Reallocated_Sector_Ct 0x0033 098 098 036 Pre-fail Always - 122
7 Seek_Error_Rate 0x000f 082 060 030 Pre-fail Always - 180445927
9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 24337
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 15
183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 239
188 Command_Timeout 0x0032 100 047 000 Old_age Always - 77
189 High_Fly_Writes 0x003a 099 099 000 Old_age Always - 1
190 Airflow_Temperature_Cel 0x0022 059 055 045 Old_age Always - 41 (Min/Max 35/45)
194 Temperature_Celsius 0x0022 041 045 000 Old_age Always - 41 (0 21 0 0)
195 Hardware_ECC_Recovered 0x001a 043 031 000 Old_age Always - 100172791
197 Current_Pending_Sector 0x0012 097 097 000 Old_age Always - 155
198 Offline_Uncorrectable 0x0010 097 097 000 Old_age Offline - 155
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 93754841128760
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 1421853788
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 1450172287

smartctl -l selftest /dev/sdb (Short)

Показать
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-23-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 80% 24337 1034609372
# 2 Extended offline Completed without error 00% 7202 -
# 3 Extended offline Completed without error 00% 5542 -
# 4 Extended offline Completed without error 00% 2334 -
# 5 Extended offline Completed without error 00% 2302 -

[/console]

[console]Посмотрим рейд
fdisk -l

Показать
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000734ea

Device Boot Start End Blocks Id System
/dev/sda1 2048 8390656 4194304+ fd Linux raid autodetect
/dev/sda2 8392704 1465147120 728377208+ fd Linux raid autodetect

Disk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2639

Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390656 4194304+ fd Linux raid autodetect
/dev/sdb2 8392704 1465147120 728377208+ fd Linux raid autodetect

Disk /dev/md0: 4292 MB, 4292804608 bytes
2 heads, 4 sectors/track, 1048048 cylinders, total 8384384 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 745.7 GB, 745723854848 bytes
2 heads, 4 sectors/track, 182061488 cylinders, total 1456491904 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/mapper/pve-root: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-root doesn't contain a valid partition table

Disk /dev/mapper/pve-swap: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-swap doesn't contain a valid partition table

Disk /dev/mapper/pve-vz: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-vz doesn't contain a valid partition table

Disk /dev/mapper/pve-data: 445.1 GB, 445074374656 bytes
255 heads, 63 sectors/track, 54110 cylinders, total 869285888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-data doesn't contain a valid partition table

mdadm --detail /dev/md0

Показать
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 23 23:27:51 2013
Raid Level : raid1
Array Size : 4192192 (4.00 GiB 4.29 GB)
Used Dev Size : 4192192 (4.00 GiB 4.29 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Fri Jun 27 12:26:35 2014
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : rescue:0
UUID : 5b989157:594e6c27:9c1607ef:f4fa72f8
Events : 53

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1

mdadm --detail /dev/md1

Показать
/dev/md1:
Version : 1.2
Creation Time : Wed Oct 23 23:27:51 2013
Raid Level : raid1
Array Size : 728245952 (694.51 GiB 745.72 GB)
Used Dev Size : 728245952 (694.51 GiB 745.72 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Fri Jun 27 12:32:41 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0

Name : rescue:1
UUID : e5e8a261:dfb1d374:caab0404:6f768abf
Events : 17829170

Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 0 0 1 removed

1 8 18 - faulty spare /dev/sdb2

[/console]

Short тест sda ничего не показал, запустил расширенный. Жду.

Какой будет правильной последовательность действий в данном случае? Где что перепроверить? Загрузчик проверить, с рейдом что то сделать и т.д.
Нужно, чтобы машина после выключения смогла корректно запуститься.
Благодарен за дельные советы.

P.S.: Просьба в терминологию добавлять немного человеческого языка, я еще не достиг дзена в линуксе.

#385110

1. Забэкапить всё
2. Прикинуть, как по быстрому восстановить если что.
3. Машина поддерживает горячую замену дисков?
Тогда удалить диск их массива, предварительно пометив его как сбойный. Заменить сам диск и добавить новый в массив. ЕМНИП Master Boot Record надо скопировать на новый диск.

4. Если не поддержживает, то все тоже, что и пункт 3, но уже с выключением машины. И обязательно проверить наличие Master Boot Record на живом диске.

Полезность тут http://xgu.ru/wiki/mdadm

#385113

1. Как хостовую забэкапить тачку средствами Debian?
3. как узнать?

#385115
"SKOmen" написал:
3. как узнать?

dmidecode , смотрим что за сервере, далее в гугл или куда там, и смотрим на модель сервера и далее описание его.

"SKOmen" написал:
1. Как хостовую забэкапить тачку средствами Debian?

Через dd например.

#385117

1. Да нет средст для Debian. Есть просто средства. На хосте я видел lvm? Тогда lvm snapshot и его бэкапить. Там же на XGU про LVM всё есть.
3. Вытащить инфу о котроллере, к которому подклёчен диск и посмотреть его спецификацию.

#385118

Кстати, ещё важный момент это не перепутать на сервере, что есть sda и что есть sdb и не дернуть рабочией диск сгоряча.

#385120
i2ks написал:

Через dd например.

То есть ось будет сама себя просто копировать, в то время как запущена?

#385121
"SKOmen" написал:
То есть ось будет сама себя просто копировать, в то время как запущена?

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

#385122
Macumazan написал:
Кстати, ещё важный момент это не перепутать на сервере, что есть sda и что есть sdb и не дернуть рабочией диск сгоряча.

Там (у хостера) порядок такой.
Для замены харда необходимо составить заявку.
В заявке указывается серийник сбойного харда и лог его смарта.

так что не перепутают.

#385123
i2ks написал:

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

То есть со всей структурой разделов и прочим?

А как из нее потом восстанавливать?

У меня в случае фейла будет голый дебиан и ssh

#385125
"SKOmen" написал:
То есть со всей структурой разделов и прочим?

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

"SKOmen" написал:
У меня в случае фейла будет голый дебиан и ssh
почитай да и вообще почитай про dd или как делать бекапы в linux. :-)
#385193

Через dd не получится.

На серваке 2 винта. Были в софтовом рейде №1

Сейчас один винт мертв. То есть у меня по сути только 1 винт жив.

Чтобы сделать бэкап-ресторе через dd мне нужно.

0) Пометить "сыпучий" хард в рейде как сбойный.
1) Флэха или хард к серваку.
2) Развернуть туда минимальный дистриб.
3) Загрузиться с этого дистриба
4) Примонтировать живой винт с данными
5) Сделать бэкап с помощью DD с этого винта
6) Заменить поврежденный диск
7) Внести его в рейд, пометить как рабочий
8) Запустить синхронизацию

Вот первый пункт в моем случае нереален, к сожалению. Там несколько тыс надо отдать разово и + помесячно.
7)

#385228

Вобщем все важное бэкапнул вручную по отдельности.
Буду заказывать еще один хард в сервак и там держать Rescue OS
Тот же дебиан в минималке поставлю. И оттуда уже буду с помощью dd бэкапить.

С недосыпа вместо рестарта случайно вырубил дэдик, сижу жду выполнения тикета по включению %)

#385233

Так. Сервак не завелся, Grub говорит File not found
Какие предложения?

#385234

сейчас грузанулся с livecd
ничего примонтировать не могу, ибо

text
mount /dev/sda1 /mnt/test_dir
mount: unknown filesystem type 'linux_raid_member'
Войдите или зарегистрируйтесь, чтобы ответить.