ITСooky

IT-рецепты съедобные и не очень!

Надежное хранилище важнейших данных за недорого в Soft Mirror RAID на Ubuntu!

дата 29.12.2019

Для себя, незаметно, перестал обращать внимании на топовые решения в компутерной технике. Этому очень помогает здравая оценка своих нужд и возможностей техники. Всему что у меня есть скоро исполнится по 10 лет, а кому то уже давно исполнилось! Того шока и трепета, который у меня был после установки Voodoo 2 и игры в Quake II в 640×480 уже не будет, хоть ты 8K картинку нарисуй. Так что апгрейжу что-то когда ну вот уже или умерло или уже должно умереть!

Дома поток данных не такой большой так что на сервере еще SATA II справляется! Для хранения особо дорогих данных использовал 2 диска HDD в зеркальном программном массиве, но они уже ну очень старые 2008 года, для этого и зеркальный RAID чтобы страховали друг-друга!

За 10 лет в бытовых HDD мало что-изменилось. Заявленная теоретическая скорость SATAII 300 мегабайт в секунду, у SATA III 600 мегабайт, в реальности с SATAII на SATAIII 390 гигабайт копируется 4 часа, со скоростью 27 мегабайт в секунду. При этом топовые ютюб техноблогеры собирают системы на PCIE4.0 c NVe дисками, и комплексуют что скорость записи всего 10 гигабайт, а должно быть 15-20 (привет Линус). Но их можно понять у них 4k. Или вот, вместимость SD карт вырасла в разы, а скорости не очень. Записать образ на 64Gb карту это тоже часы! Так что реальных поводов к апгрейду мало, если ты не видео блогер или геймер!

Так что у меня будет самый правильный нищебродский экологичный апгрейд! Чтобы не подрывать нашу планету Земля безумной тратой ресурсов, буду выжимать из старого железа все на что оно способно, при этом прибегая к помощи китайский и японских товарищей (это должно указывать на дешевизну, но то что японцы оказались дешевыми меня удивило)!

Старая мамка умеет только 2 порта на SATA III, которые уже заняты, поэтому беру вот такой китайский адаптер PCIE-SATA на Marvell 88SE9125! Для него нужна PCI-E 2.0, у меня на старой мамке он уже есть! Что странно работает он только в PCI-E x1 слоте (маленький самый), в моем понимании должен был работать и в PCI-E x4 и PCI-E x16, но нет, системник даже не может загрузиться!

И беру самые дешевые HDD на 1 Tb. Удивительно но их делают японцы TOSHIBA на Филипиннах. Из экологичности (вот тут правда из-за нее, а не из-за пустых карманов) взял 2,5 ноутбучные, в них более разумное использование металлов(меньше чем в 3,5, хотя при этом они дешевле) ну и экология на питании. Еще при включени массива с ними они еле заметно хрюкают, в отличии от старых которые еще как хрюкают! Взял коробочную версию 1 ТБ Toshiba L200 Slim [HDWL110EZSTA] брал в www.dns-shop.ru за 3050 RUR, она оказалась на 50 рублей дешевле голой (видимо потому что в коробках были свежие диски от окт. 2019 по другому курсу закупались).

Надо сделать на дисках раздел EXT4 первичный если пытаться сделать на всем дсике то RAID после перезагрузки будет пропадать!!!!!!!!!11

Для создания массива в Ubnutu надо выполнить всего одну команду!
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sde1 /dev/sdf1
/dev/md0 — это как бы сводное имя для массива, но потом оно само меняется и не понять за чем оно вообще
level=1 — значит зеркальный
/dev/sde /dev/sdf — это новые добавленные диски

Смотрим что в массивах
cat /proc/mdstat
Вот это появляется

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sde[1] sdf[0]
      976630464 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.1% (1876672/976630464) finish=164.4min speed=98772K/sec
      bitmap: 8/8 pages [32KB], 65536KB chunk

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

Ждем почти три часа и по окончании синхронизации создаем файлову систему!
sudo mkfs.ext4 /dev/md0

Сейчас массив называется md0, но после перезагрузки будет называеться md127. Еще народ прописвает его в нстройках mdm и в fstab — я не прописываю и так заводится когда я кликаю на него в Ubunto — это хорошо он не монтируется на загрузки а только когда нужен, тож экология!

Вот тут на него жму, когда нужно и он сразу заводится

Чтобы посылать письма о состоянии RAID массива
Интересная особенность программного массива в Ubuntu, он в плане предупреждений неинтегрирован в Ubuntu — если диск отвалится Убунтыч будет молчать, и ктстати сам его не начнет восстанавливать!

Надо становитить почту
Для этого ставим
sudo apt-get install ssmtp
Настраиваем редактирую файл /etc/ssmtp/ssmtp.conf
sudo vi /etc/ssmtp/ssmtp.conf
Оставляем только такой текст в файле, со своими данными

root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username@gmail.com
AuthPass=password
FromLineOverride=YES
UseTLS=YES

Теперь идем в свой gmail аккаунт myaccount.google.com/security и в Безопаность включаем Ненадежные приложения, у которых есть доступ к аккаунту

Эту настройку надо будет постоянно проверять, она часто сама отключается!

В файле настроек md
sudo vi /etc/mdadm/mdadm.conf
меянеям строку

MAILADDR root

Запускаем тест
sudo mdadm --monitor /dev/md1 -t
Сразу приходит тествое письмо

Отдельно запускать его не надо, он уже запушен!

Теперь делаем тест, выдираем питание из одного из дисков старого массива md1!
Никаких сообщений не появляется! Но Ubuntu начинает долго задумываться при открытии окон, хотя сам массив работает захожу все открывается!

Включаю диск обратно, перезагружаюсь!

Запускаю мониторинг, тут надо писать какого массива
sudo mdadm --monitor /dev/md1
Сразу получаю письмо
Заголовок

DegradedArray event on /dev/md1

Смотрим состояние
cat /proc/mdstat
показывает

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md127 : active (auto-read-only) raid1 sde[1] sdf[0]
      976630464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

md1 : active raid1 sdd1[0]
      488252224 blocks super 1.2 [2/1] [U_]
      
unused devices: <none>

в записи md1 вот по этому [2/1] [U_] можно понять что что-то не так!

Посмотрим подробно
sudo mdadm --query --detail /dev/md1
выдает

/dev/md1:
           Version : 1.2
     Creation Time : Sun Sep 13 14:03:58 2015
        Raid Level : raid1
        Array Size : 488252224 (465.63 GiB 499.97 GB)
     Used Dev Size : 488252224 (465.63 GiB 499.97 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent

       Update Time : Sun Dec 29 09:30:06 2019
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : computer:1
              UUID : 930a7523:41a7e66d:086c7a74:9c300fdc
            Events : 9479

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       -       0        0        1      removed

Видно что в массиве один диск. И тут мы видим

Consistency Policy : resync

Надо запустить resync

Автоматом resync не начинается!!(нет)!!

Для этого надо отмонтировать массив
sudo umount /dev/md1p1
Остановить
sudo mdadm --stop /dev/md1
смотрим на диск
sudo mdadm --examine /dev/sdb1
делаем скан чего вообще есть
sudo mdadm --assemble --scan -v
тут в конце говорит более менее понятно

mdadm: Fail create md1 when using /sys/module/md_mod/parameters/new_array
mdadm: /dev/sdd1 is identified as a member of /dev/md/1, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md/1, slot 1.
mdadm: added /dev/sdb1 to /dev/md/1 as 1 (possibly out of date)
mdadm: added /dev/sdd1 to /dev/md/1 as 0
mdadm: /dev/md/1 has been started with 1 drive (out of 2).

кстати тут он сразу пытается и подключить массивы, после этой комманды надо тоже запустить
sudo mdadm --stop /dev/md1

Ну пытаемся запустить resync
sudo mdadm --assemble --run --force --update=resync /dev/md1 /dev/sdd1 /dev/sdb1

Подключение второго диска не случается, стартует с одним и пишет

Fail create md1 when using /sys/module/md_mod/parameters/new_array

Короче безобидное отключение питание в работающим массиве, выкиноло второй диск, но не убило массив!

Пробую подключить его как новый
sudo mdadm --manage /dev/md1 -a /dev/sdb1
и сработало, начинается синхронизация на полтара часа
cat /proc/mdstat
Вот так

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb1[2] sdd1[0]
      488252224 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.0% (267968/488252224) finish=91.0min speed=89322K/sec

Так пытась провести тесты, эээээ

C fio какая-то фигня

Делаю по другому в массивах делаю файл большой 50gb
dd if=/dev/zero of=test.file count=50000 bs=1048576
и копирую его на ssd
pv ./test.file > /tmp/test.file

Результаты свожу в таблицу

Выводы
1 Для новых HDD SATAIII достаточно SATAII, ну не могут они в сата3 хотя маркетологи пишут что могут
2 SSD быстрее на SATAIII, но не в два раза в реальном копировании, как я хотел
3 PCIE-SATA на Marvell 88SE9125 все таки работает как SATAIII, но плюсов нет, даже меньшие характеристики PCI-E 1x по сравнению с SATAIII не мешают, потому что любому HDD и SATAII уже много

Оставил массив на мамкином SATAII так как он показывает такие же скорости копирования как и мамкин SATAIII

В моем старом, но крайне удачном корпусе AeroCool PGS Q Qs-200 места сразу подосовбодилось!

UPD: Случилась инетерсная фигня, вот прям через 3 года!
После очередного апгрейда ядра Ubuntu появился баг — mdm не появялется полсе перезагрузки…

НО ДАННЫЕ ВОССТАНОВИТЬ МОЖНО!

Ну во первых посмотрм что raid убит
cat /proc/mdstat
пусто
sudo mdadm --detail --scan
пусто

Ставим testdisk
sudo apt-get install testdisk

Запускаем указава один из дисков RAID массива
sudo testdisk /dev/sda


Жмем
[Proceed]
[EFI GPT]
[Analyse]
[Quick search]


[Enter]
[Write]
[Y]

Надоть будет перезагрузиться чтобы появился диск
[OK]
[Quit]
[Quit]

Перезагрузились и диск появился, вес файлы целы вродебы!


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *