Неудачное копирование ~ 300 ГБ файлового диска VMDK, отформатированного как VMFS, на Ubuntu Server 14.04 LTS
2398
taylorthurlow
Хорошо, я попытаюсь подробно объяснить мою ситуацию, так что терпите меня. Мое нынешнее состояние таково. У меня есть жесткий диск на 500 ГБ, который раньше был на сервере - он размещал виртуальные машины - и был одним из двух дисков в RAID 1. Я предполагаю, что оба диска идентичны на этом этапе, но у меня есть другой диск, если по какой-либо причине этот не работает, или мне нужно его использовать.
Этот диск подключен к небольшой коробке Linux через встроенный SATA (это сервер Intel MiniITX mobo) под управлением Ubuntu Server 14.04 LTS, недавно установленный специально для этой цели. Я установил vmfs-tools, предоставив доступ vmfs-fuse, который я использую как таковой для монтирования диска:
sudo vmfs-fuse /dev/sda1 /mnt/recovery
Это успешно работает как монтируемое только для чтения (обратите внимание, что / dev / sdb - мой загрузочный диск, они меняются местами, потому что я перепутал порты SATA). Мой fdisk выглядит следующим образом:
taylor@nas:~$ sudo fdisk -l /dev/sda WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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 Device Boot Start End Blocks Id System /dev/sda1 1 975699967 487849983+ ee GPT
Я могу успешно прочитать содержимое папки, содержащей мой проблемный файл dot-flat.vmdk:
Естественно, желая проверить, чтобы убедиться, что я могу читать файлы должным образом, надеясь, что содержимое не были повреждены, я попытался tailING vmware.log:
Так что это работает нормально, это, вероятно, не проблема с приводом. В любом случае, я хотел проверить SMART-данные. Диск работал нормально, прежде чем я вытащил их, чтобы обновить их. Я установил smartmontoolsи затем:
taylor@nas:~$ sudo smartctl -a /dev/sda smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital RE3 Serial ATA Device Model: WDC WD5002ABYS-18B1B0 Serial Number: WD-WCASY4933732 LU WWN Device Id: 5 0014ee 202b597b2 Add. Product Id: DELL� Firmware Version: 02.03B04 User Capacity: 500,107,862,016 bytes [500 GB] Sector Size: 512 bytes logical/physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 2.5, 3.0 Gb/s Local Time is: Sun Dec 7 01:55:02 2014 PST 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: (0x84) Offline data collection activity was suspended by an interrupting command from host. 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: ( 9480) 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: ( 112) minutes. Conveyance self-test routine recommended polling time: ( 5) minutes. SCT capabilities: (0x303f) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 194 185 021 Pre-fail Always - 3291 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 196 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 056 056 000 Old_age Always - 32738 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 106 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 99 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 196 194 Temperature_Celsius 0x0022 108 105 000 Old_age Always - 39 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 32447 - 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.
По крайней мере, для меня это выглядит довольно простым SMART-отчетом для старого диска, особенно для одного с 32638 часами (1352 днями!) Времени включения. Я запускал отчет на другом диске (рейд пара), и результаты были примерно одинаковыми, если я правильно помню.
Данный диск содержит около 8 виртуальных машин, все из которых я без проблем извлек из диска. Чтобы сделать это, я использовал простую cpкоманду для другого диска, вот и все. Этот целевой диск, на котором работает ОС, имеет около 700 ГБ свободного места. Начавшаяся проблема cpдостигла самого большого (с огромным отрывом) файла VMDK из всех. Большинство VMDK было около 25-30 ГБ, а проблемный - около 300 ГБ. Большой VMDK изначально был создан как THICK VMDK. Вот что cpделает:
Все, что я прочитал об этой Input/output errorсделке, означало, что диск не работает. Но у меня была одна и та же проблема на обоих дисках, и тест SMART выглядел хорошо, поэтому я решил, что это может быть что-то другое. Размер файла также может быть фактором.
Итак, я решил попробовать rsync, так как побитовая копия могла бы подойти мне лучше. Этот немного странный. Сначала мне показалось, что rsyncвсе работает отлично, я ls -alсмог найти целевой каталог и увидел, что размер временного файла постоянно увеличивается. Однако, как только целевой файл достигает нужного размера, он показывает слова, Input/output errorкак прежде, и затем начинает rsyncпроцесс заново, удаляя только что переданный файл (или, по крайней мере, частично). Разговор о разочаровании. Вот как выглядит этот вывод:
Действительно, в конце концов, я после некоторых файлов, которые находятся внутри VMDK. Если есть способ монтировать VMDK напрямую, я хотел бы знать, но все, что я видел в сети по этой теме, не работает, в основном потому, что у меня есть том VMFS вместо чего-то более простого, например EXT4., Я подумал, что может быть несколько обходных путей, но я не совсем уверен,
Я подумал, что мог бы попытаться вернуть два диска обратно на сервер, воссоздать мои виртуальные машины ESXi и извлечь данные таким образом? Нету. Сервер, на котором они находились, - это Dell Poweredge 1950 с RAID-контроллером SAS 6i / R, в котором уже есть другой массив. Я не мог вставить диски обратно и загрузить их в ESXi, если бы захотел, по крайней мере, не отформатировав их.
Так что здесь я перехожу к SuperUser. Какие-нибудь предложения относительно того, что я мог сделать? Любая альтернативная утилита копирования? Способ монтировать VMDK, если диск отформатирован как VMFS? Исправление ошибок ввода / вывода? Может быть, даже разорвать VMDK вручную? У меня был только один раздел на самом образе, поэтому было бы довольно легко догадаться, где будет начинаться данный виртуальный раздел EXT4, но я не знаю в первую очередь о том, как структурированы файлы VMDK.
Я ценю ваше время на чтение!
Вы можете установить ESXi где-нибудь (не нужно регистрироваться, есть пробный период) и попытаться получить доступ к данным с помощью «официального» драйвера.
Daniel B 9 лет назад
0
@DanielB Я пытался спать прошлой ночью и понял, что это все еще вариант. Первоначально я исключил это, потому что у меня нет необходимых мест на сервере для этого, и если я вытаскиваю текущие диски, то мой текущий raid массив ломается. Я собираюсь установить ESXi на другую машину, вероятно, ту же, которую я использовал для этих тестов, и доложу об этом.
taylorthurlow 9 лет назад
0
@DanielB Хорошие новости! Это сработало. Мне пришлось запускать ESXi с USB-накопителя, работающего на сервере, потому что блок NAS, который я собирался использовать, не поддерживал аппаратную виртуализацию, а имел только 2 ГБ ОЗУ. В любом случае, я сейчас активно копирую свои данные!
taylorthurlow 9 лет назад
0
1 ответ на вопрос
1
taylorthurlow
After a bit of work and a mind-jogging from @DanielB, I realized that I could just set up another ESXi instance on a USB drive on the server, install from scratch, attach the old drive to the SATA port that I used to run my ESXi host drive on, and then recreate the VM that way.
It booted straight up, read my files, and everything went smoothly.