The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Расширение программного RAID1 в Linux до зеркала из трёх дисков
При добавлении дополнительного диска к RAID1 в mdadm по умолчанию создаётся
запасной диск (hot-spare), который будет задействован в случае выхода из строя
одного из входящих в массив дисков.

Для увеличения производительности чтения данных, вместо hot-spare диска можно
добавить полноценный третий диск в RAID1, т.е. все три диска будут
заркалированы и операции чтения будут распараллеливаться между ними.

Имеем RAID 1 /dev/md121 из двух разделов /dev/sda1 и /dev/sdb1:

   mdadm --detail /dev/md121
   ...
   Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda1
       1       8       18        1      active sync   /dev/sdb1

Клонируем разделы на третий диск /dev/sdc

   sfdisk -d /dev/sda| sed 's/sda/sdc/'| sfdisk /dev/sdc

Добавляем /dev/sdc1 в массив:

   mdadm  /dev/md121 --add /dev/sdc1

   mdadm --detail /dev/md121
   ...
   Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda1
       1       8       18        1      active sync   /dev/sdb1
       2       8       34        -      spare   /dev/sdc1

Чтобы /dev/sdc1 стал полноценным участником массива меняем статус spare на active:

  mdadm  /dev/md121  --grow --raid-devices=3

Через некоторое время, после того как массив перестроится:

  mdadm --detail /dev/md121
   ...
  Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
       2       8       33        2      active sync   /dev/sdc1
 
26.03.2016
Ключи: linux, mdadm, raid1, disk, hotspare / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Диски и файлы / RAID массивы

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, _KUL (ok), 03:39, 26/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите непонимающему. Есть 2 диска, работают в программном рейде. Загрузчик находится на обоих дисках? Или бут сектор на первом(в биосе выбран он для старта), загрузчик там же, и при выходе его из строя, система попросту не будет знать от куда стартовать?! Одновременно загрузчик может быть на обоих дисках?!
     
     
  • 2.2, max (??), 08:24, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Некоторые дистрибутивы при инсталяции пишут лоадер только на первый винт. Но никто не мешает продублировать загрузчик на все диски. grub-install в помощь. Всегда так делаю.
     
     
  • 3.6, _KUL (ok), 13:26, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Когда вы накатываете новое ядро или правите инитрамфс, как себя ведёт груб? Он обновляет загрузчик только на первом диске и приходится дублировать вручную и на второй?
     
     
  • 4.8, Stax (ok), 22:51, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    При обновлении ядра загрузчик вообще не обновляется. Загрузчик grub на то и умный, чтобы найти boot-раздел (в том числе на raid/lvm, если это grub2) и прочитать конфиг оттуда. Поэтому на факт рейда при обновлении ядра ему глубоко фиолетово.

    Если был обновлен сам пакет grub, то для legacy режима загрузки обычно grub-install не делается и по факту grub остается старым (т.к. автоматический grub-install плохо сработает на некоторых системах), а для UEFI-загрузки будет обновлен, но там это обычный файл на файловой системе.

     
  • 2.11, Avari (?), 20:08, 31/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Есть 2 диска, работают в программном рейде. Загрузчик находится на обоих дисках?

    Если его установить на оба диска в процессе инсталляции системы. При конфигурации пакета grub-pc этот вопрос задаётся. Возможно, для этого необходимо включать expert mode, не уверен.
    Собственно, это _правильный_ вариант - установить GRUB в MBR всех дисков, на которых лежит RAID с системой. Неизвестно же, какой из дисков выйдет из строя и с какого потом загружаться придётся.
    Кто не догадался - ставим птички при конфигурации grub-pc на sdX, а вот на mdX GRUB бессмысленно инсталлировать.
    Если вы не уверены, как именно установлена данная конкретная система, или хотите диск добавить - сделайте dpkg-reconfigure grub-pc и поставьте птички в нужных местах. Всё, при обновлениях grub-pc итп загрузчик будет автоматически переустанавливаться на все выбранные диски.
    Автоматизировать это тоже можно через debconf-set-selections.

     
  • 2.16, Аноним (-), 12:51, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    загрузчику ничего не мешает быть на обоих дисках. Другое дело как объяснить bios что загружаться надо не со сломавшегося, а с рабочего.
     
  • 2.18, Azaza (?), 21:06, 26/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А не проще поставить малого объёма SSD чисто для ОС и не мучаться? В общем-то, это типичная домашняя схема, что будет мешать сделать так же в производстве, не вижу.

    В конце концов, если энтерпрайз, то там оперативки по 128гб на серверных платах, можно загрузить ОС полностью в ram disk, если SSD боитесь убить раньше времени. Там и SSD для этих целей не нужен.

     

  • 1.3, Аноним (-), 11:11, 26/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не сказано самое главное: скорость записи при этом уронится до скорости самого медленного диска, плюс общая производительность пострадает за счёт необходимости делать три записи на диск на одну запись со стороны системы.
     
     
  • 2.4, LionSoft (ok), 11:23, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У некоторых много-много-много read и мало-мало-мало write.
     
  • 2.5, Forth (ok), 11:36, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Диски вполне могут быть одного типа, то бишь иметь одинаковую скорость.
    Что касается записи, то постановка запроса на запись данных в очередь производится для всех дисков сразу, поэтому задержка при записи так же равна самой поздней записи, как и при чтении.
     
     
  • 3.13, sabakka (?), 09:39, 06/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > задержка при записи так же равна самой поздней записи, как и при чтении

    в md читает со всех сравнивает и выдаёт результат?

     

  • 1.7, kleem_head (?), 22:04, 26/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    загрузчик на рэйде - это кактус под подушкой. пока спишь сверху, все ок. чуть пошевелился - такой кайф
     
     
  • 2.10, Аноним (-), 20:50, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вам срочно нужна пересадка рук в плечи.
     
     
  • 3.17, АнонимУася (?), 11:56, 18/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    --загрузчик на рэйде - это кактус под подушкой. пока спишь сверху, все ок. чуть пошевелился - такой кайф
    ++загрузчик на ПРОГРАММНОМ рэйде - это кактус под подушкой. пока спишь сверху, все ок. чуть пошевелился - такой кайф

    Теперь пересадка не нужна?

     
  • 2.19, Вареник (?), 03:59, 19/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    grub в MBR каждого диска и забыть до смерти одного их дисков
     

  • 1.9, konstZZZ (?), 18:59, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавляем /dev/sdc2 в массив:

    Наверное имелось ввиду:
    Добавляем /dev/sdc1 в массив:

     
  • 1.12, sabakka (?), 09:35, 06/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >    sfdisk -d /dev/sda| sed 's/sda/sdc/'| sfdisk /dev/sdc

    зачем городить?
    sfdisk -d /dev/sda | sfdisk /dev/sdc достаточно

     
  • 1.14, JL2001 (ok), 19:26, 08/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для увеличения производительности чтения данных, вместо hot-spare диска можно

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

    а разве мд-софтерйд не будет ожидать окончания чтения со всех дисков чтоб проверить результат ? когда я тестил mdraid1 на 2 дисках скорость чтения не отличалась от чтения с одного диска

     
     
  • 2.15, sabakka (?), 09:36, 09/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Note that the read balancing done by the driver does not make the RAID1 performance profile be the same as for RAID0; a single  stream  of sequential  input  will not be accelerated (e.g. a single dd), but multiple sequential streams or a random workload will use more than one spindle. In theory, having an N-disk RAID1 will allow N sequential threads to read from all disks.

    Individual devices in a RAID1 can be marked as "write-mostly".  These drives are excluded from the normal read balancing and will only  be read from when there is no other option.  This can be useful for devices connected over a slow link.

    получается не сравнивает в процессе чтения, для этого существует специальная команда - echo check > /sys/block/mdX/md/sync_action

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру