23 марта 2014 г.

Замена единственного диска в NAS Synology

Те, кому интересно, почему я сделал так, а не иначе, читайте дальше. Кому интересен сразу рецепт, могут перейти по ссылке.

Предыстория.

Как-то в очередной раз обходя настройки своего NAS Synology 210j обнаружил, что он умеет проверять состояние жёстких дисков, в том числе по расписанию. Есть возможность быстрой проверки (порядка минуты) и медленной (пара часов). Решил на всякий случай настроить на ежедневное и еженедельное сканирование, соответственно. Судя по длительности работы медленной проверки - это проверка поверхности на наличие плохих секторов, несмотря на то, что проверка находится в разделе настроек S.M.A.R.T.

Дело это было весной 2013. Сразу я тогда решил не запускать медленную проверку. Но после первого же запуска по расписанию мне выдалось сообщение (меня хранилище уведомляет по почте о событиях в своей жизни), что с диском есть проблемы. В чём они - узнать нигде нельзя. По крайней мере я не нашёл ни в журналах, ни в результатах тестирования. "Плохо" - и всё.

Скачал я с сайта производителя диска утилиту для проверки диска, вытащил диск из хранилища, подключил к своему компьютеру и запустил проверку. Проверка шла долго - порядка 6 часов. Был найден один плохой сектор, который был утилитой переназначен на запасной рабочий.

После этого хранилище при последующих проверках перестало ругаться, но на заметку я взял, т.к. обычно дело одним не заканчивается и постепенно сыпаться диск начинает всё сильнее.

Прошло месяцев 8-9, и вновь проверка выдала предупреждение.

Надо бы менять диск, пока не поздно.

Диск был куплен. Вместо 2 ТБ сразу 3 ТБ. Не стал брать 4, т.к. пока в таком потребности не было - зачем переплачивать? А 3 ТБ было мне в самый раз.

Переезд.

Хотелось сделать всё максимально незаметно для системы, т.е. чтобы с её точки зрения изменился только объём раздела и всё. Поэтому вариант вставить новый диск в пару к первому, инициализировать его, скопировать туда всё с первого средствами NAS меня не устраивал.

Причин для этого несколько:
  1. Я был уверен, что новый диск будет разделом № 2. Даже когда он останется один. Не смертельно, наверное, но не красиво.
  2. У меня используется многопользовательский доступ с домашними папками пользователей. Обычно я таким образом раздаю фотографии с разных мероприятий. В настройках включения домашних папок указывается на каком разделе они должны располагаться. Что произойдёт при смене раздела в настройках с первого на второй я не знаю. Пробовать на реальных данных не хотелось. Создавать в Midnight Commander копию папок на другом разделе, надеясь не потерять права (а здесь у меня тоже уверенности не было, т.к. я в Linux'е откровенно слаб), потом меняя настройку местоположения папок, тоже не хотелось.
  3. У меня стоял как минимум один сторонний пакет, который где-то хранил свою базу. Наверняка не на системном разделе, т.к. тот не резиновый. Значит в разделе с данными. Где? Не знаю, в каком виде - тоже. Всё ли в одном месте - без понятия.

Поэтому ручной переезд через интерфейс NAS я не хотел делать.

Решил попробовать через клонирование диска.

Я думал, что всё будет довольно просто - опыт использования Acronis True Image и иногда других подобных программ у меня был. Склонировать диск целиком, увеличив потом размер раздела с данными и всё.

О том, что на каждом вставленном в NAS Synology диске, делается системный раздел, зеркалирующийся между дисками (т.е. на каждом диске есть полная копия системного раздела) я знал. Это позволяет при смерти любого диска запуститься с любого оставшегося. Не знал я, что при создании раздела с данными на двухдисковом и более хранилище Synology создаётся RAID, внутри которого уже делаются желаемые разделы с данными. Даже BASIC-раздел создаётся внутри RAID. Видимо, это делается для простоты смены типа RAID-массива в дальнейшем. В однодисковых моделях всё проще - там никакой RAID невозможен, т.к. диск один, поэтому раздел под данные создается не внутри RAID-раздела.

В результате я увидел на диске следующую структуру:
  1. Системный раздел EXT3, размером 2,375 ГБ.
  2. Linux-Swap, размером 2 ГБ.
  3. Неразмеченное пространство около 128 Мб.
  4. RAID-раздел, занимающий основное место.
  5. Неразмеченное пространство около 4 МБ.

Первым делом меня насторожили неразмеченные области. Назначение непонятно. Может какое-то хитрое выравнивание раздела. Может ещё что. Насколько оно критично? Кто бы знал.

Да. Если первые два раздела не вызвали проблем с опознанием у Acronis True Image Home 2014, то раздел с данными - RAID и всё. При клонировании диска программа позволяет копировать всё как есть, либо с увеличением размера разделов. Так вот увеличить мне позволялось только системный раздел, т.к. формат RAID'а Acronis'у был неизвестен.

Я решил, что пусть пока будет один в один, запустил клонирование. Часов 6-7 оно занимает для 2 ТБ (т.к. раздел с данными неизвестной структуры, то копируется посекторно весь его объём, а не только часть, занятая данными).

Поставил в NAS новый диск, запустил. Зашёл в Диспетчер хранения и увидел в одной из информационных строк о своём разделе, что занимет он не весь доступный объём и можно расшириться. Строка-ссылка, по клику на которую позволяют выбрать некоторые настройки расширения (мне доступна только одна - за счёт незанятого пространства), запускаю процесс. Окошко становится серым... секунд на 5. А потом всё возвращается обратно. В журнале системы строка, что запуск расширения пространства был завершён успешно. Однако объемы не изменились. Перезагрузка хранилища не помогла.

Были опробованы и иные программы: CloneZilla, Acronis Backup & Restore вкупе с Acronis Disk Director, Paragon Hard Disk Manager свежих версий.

Ни одна из них не смогла ничего сделать с RAID-разделом, т.к. что внутри него им не известно. Некоторые меня удивили тем, что копировать разделы умели только в пустое пространство, другие только в существующие разделы.

Вероятную причину невозможности расширить раздел данных я подозреваю в том, что старый 2 ТБ диск был разбит давно и использовалась для этого MBR, которая ограничивает доступный объём как раз 2 ТБ. Если же новый чистый диск поставить в хранилище и инициировать с нуля, позволив его разбить, то будет использован GPT, который уже имеет гораздо более широкие ограничения.

Я попробовал разбить диск, инициировав его с нуля в хранилище, затем через CloneZilla скопировал со старого диска все разделы в разделы нового диска (при этом на новом остаётся GPT, т.к. клонировался не весь диск, а только его разделы), но это не помогло почему-то расширить раздел в запустившемся хранилище.

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

Acronis True Image работает пока не столкнётся с таким сектором, после чего стоит с вопросом из разряда "что будем делать?". Т.к. процедуру я обычно запускал на ночь, то утром встречал его на середине работы, внимательно ждущего ответ.

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

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

Под рукой оказался KUbuntu 13.10. Предварительно разведал, что копирование файлов с сохранением прав делается через команду

cp -xavR /source/* /dest

Снёс все разделы с нового диска, установил туда систему от Synology с нуля, создав и раздел под данные.

Загрузился в KUbuntu в режиме Live CD, т.е. без установки. Но не увидел смонтированных разделов дисков NAS.

Начал искать как и почему. Прочёл про RAID, про его монтирование.

Нам понадобится терминал, в котором наберём следующие команды:

sudo -i
apt-get install mdadm

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

Далее мне понадобилась команда:

mdadm --assemble --scan

Для тех, у кого реально используется RAID (напомню, что у меня всего лишь BASIC-раздел), понадобится, вероятно, следующее:

apt-get-install lvm2
vgscan --mknodes

по другой версии:

apt-get-install lvm2
mdadm -Asf && vgchange -ay

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

Возвращаясь к mdadm --assemble --scan скажу, что тут опять не пошло всё гладко. Запуск этой команды выдал мне ошибку вроде такой:

mdadm: Devices UUID-aebf19d2:1b344556:3d853c15:26f6a926 and UUID-0f8f8e73:79b83aa7:ed91cb40:2b591c97 have the same name: /dev/md2
mdadm: Duplicate MD device names in conf file were found.

Стал искать информацию по ошибке, увидел лишь упоминание файла mdadm.conf и всё.

Нашёл у себя этот файл в /etc/mdadm/. Для редактирования нужны права рута. Тут пара вариантов:
  1. Запустить терминал, набрать sudo -i, получив права рута, далее запуск Midnight Commander'а и правка файла в нём.
  2. Аналогичное получение прав, запуск Dolphin из командной строки (это аналог Проводника Windows) и правка файла через него.

В конце файла нашёл строки:

ARRAY /dev/md/2 metadata=1.2 UUID=aebf19d2:1b344556:3d853c15:26f6a926 name=DiskStation:2
ARRAY /dev/md/2 metadata=1.1 UUID=0f8f8e73:79b83aa7:ed91cb40:2b591c97 name=DiskStation:2

Не понимая толком о чём файл, увидел, что обе строки указывают на один путь: /dev/md/2. Рискнул исправить в одной из строк /dev/md/2 на /dev/md/4, сохранил.

Запустил снова команду mdadm --assemble --scan.

Всё. Разделы с данными смонтировались. В Dolphin они видны наряду с флешкой и DVD. В реальной структуре они смонтировались в /media/kubuntu/ под именами "1.41.12-1354" и "1.42.6-3827". Такие метки имели системные разделы, которые я видел в Acronis Disk Director. Это меня смутило поначалу, но поглядев на содержимое папок, понял, что это всё же разделы с данными. Причём последняя цифра - явно номер билда DSM, которая была установлена изначально на диске.

На новом диске уже были папки, создающиеся по умолчанию. Я их удалил через Dilphin, который сначала поместил их в корзину, откуда пришлось удалять дополнительно.

Осталось лишь запустить копирование файлов в терминале с правами рута. В моём случае это было:

cp -xavR /media/kubuntu/1.41.12-1354/* /media/kubuntu/1.42.6-3827

После завершения копирования (которое прошло быстрее, т.к. копировался лишь объём реально занятый файлами) я скопировал системный раздел (и на всякий случай swap-раздел) со старого диска на новый, поставил новый диск в NAS и запустил.

После запуска NAS нашёл ещё одну шару ".Trash" и выставил её в сеть. Вероятно это скрытая папка корзины, которую создал Dolphin в процессе удаления стандартных папок. Удалил эту шару.

В ходе запущенного бэкапа с компьютера на NAS обнаружилось отсутствие прав доступа к одной из фотографий в хранилище. У неё почему-то значился владелец "0" вместо обычного для прочих фотографий. Я просто удалил фотографию и запустил бэкап снова - он восстановил мне удалённую с компьютера и не ругался больше ни на одной другой, т.е., вроде де бы, всё в порядке. Надо было на самом деле восстановить владельца и посмотреть не побита ли сама фотография. Возможно именно на неё пришёлся порченный сектор диска.

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

Итого, вкратце шаги, необходимые для замены диска с BASIC-разделом под данные:

  1. Вставить новый диск вместо старого в NAS.
  2. Инициализировать его, установив DSM с компьютера через Synology Assistant (или через веб-интерфейс для новых версий NAS.
  3. Создать BASIC-раздел под данные на весь свободный объём диска.
  4. Выключить NAS и подключить старый и новый диски к компьютеру.
  5. Запуститься с Live CD какого-нибудь Linux.
  6. Запустить терминал и выполнить в нём:
  7. sudo -i
    apt-get install mdadm
  8. Монтируем:
  9. mdadm --assemble –scan
  10. Если возникла ошибка такого вида:
  11. mdadm: Devices UUID-aebf19d2:1b344556:3d853c15:26f6a926 and UUID-0f8f8e73:79b83aa7:ed91cb40:2b591c97 have the same name: /dev/md2
    mdadm: Duplicate MD device names in conf file were found.
    То исправить файл /etc/mdadm/mdadm.conf под рутом так, чтобы каждому устройству соответствовал свой путь. Повторяем пункт 7.
  12. Найти точки монтирования и удалить всё с нового диска (тут главное диски не перепутать!).
  13. Проверить под какими именами смонтировались разделы дисков NAS и вписать их в следующей команде:
  14. cp -xavR /media/kubuntu/1.41.12-1354/* /media/kubuntu/1.42.6-3827
  15. Перезагрузить компьютер, загрузившись с диска с CloneZilla.
  16. С его помощью скопировать системный и swap-раздел со старого диска на новый. Опять же не перепутайте!
  17. Выключить компьютер, вставить новый диск в NAS и запустить его.

2 комментария:

  1. Этот комментарий был удален автором.

    ОтветитьУдалить
  2. Тоже пару дней танцевал с бубном, чтобы заменить hdd на ssd в DS-101. Тоже последний раздел не хотел клонироваться ни какой прогой. В конце концов получилось с HDDClone 4.2) Установил 2Тб ssd) Сейчас ищу инфу как можно заменить оболочку на DSM. 3.2)

    ОтветитьУдалить