1 января 2011 в 00:00

Linux: Ускоряем софтрейд и RAID6 в домашнем сервере

Чем можно заниматься в 0 часов 0 минут в Москве? Сидеть за праздничным столом и праздновать? Как бы не так. В этот праздничный миг я хочу поделиться с вами моими сегодняшними изысканиями по тюнингу производительности софтрейда в домашнем сервере. Можно пропустить теорию и сразу читать последний абзац где основная соль.

Почему RAID-6?


Как известно, RAID-5 выдерживает смерть одного веника, и после этой самой смерти – до момента когда закончится восстановление рейда с новым винчестером ваши данные под угрозой – восстановление обычно занимало до 70 часов для больших массивов и еще один веник может легко умереть в это время.
RAID-6 выдерживает смерть 2-х любых веников. Из минусов – общепризнанное мнение что тормозит, особенно запись, даже по сравнению с RAID-5. Что-ж, проверим.

Почему софтрейд?


Железный рейд нужен только в одном случае – если у него есть батарейка и набортный кеш. Тогда контроллер сразу отвечает ОС что запись на диск завершена на физическом уровне и всякие ACID базы работают очень быстро и безопасно.
В остальных случаях никаких бонусов по сравнению с софт-рейдом нет, одни минусы:
1) Сгорело железо? Новый сервер? Будьте добры купить тот же контроллер, ну или молитесь о совместимости. Софтрейд из тех-же дисков собирается где угодно.
2) Цена :-) Собственно, из-за этого нормальных рейдов с батарейкой я в руках так ниразу и не держал :-)

Ну а те «рейд-контроллеры» которые стоят на обычных материнских платах – вообще никогда не стоит использовать. Они просто дают грузить ОС с рейда за счет набортного биоса (который выполняется центральным процессором, своего процессора нет), на этом их польза заканчивается, и остаются только минусы.

О паре мифов софтрейда


1) Он жрет много драгоценного процессора
Если мы одним глазком глянем в исходники драйвера RAID в ядре Linux, то увидем, что там давно все оптимизированно под SSE2. А с SSE2 процессор может считать XOR от 16 байт за 1 такт на 1 ядре современного процессора и все упирается в скорость обмена с памятью. Можете прикинуть сколько % загрузки одного ядра сгенерирует поток в 1Гб/сек :-) А ядер то много :-) На практике, с моим Opteron 165 (1.8Ghz 2 ядра) скорость никогда не упиралась в CPU.
2) Он разваливается и потом хрен соберешь.
Если что-то и отваливается – то из-за железа (например обычные винты любят иногда делать всякие фоновые задачи). Добавление вывалившегося веника – простая операция, которая кроме того может проводится автоматически. Впрочем, в среднем это надо делать раз в год.
mdadm /dev/md0 -a /dev/sde1
3) У софтрейда хреновый мониторинг
С мониторингом все отлично и настраиваемо. Достаточно например просто мыло указать в конфиге mdadm и он пришлет вам письмо если что-то случиться с вашим массивом. Очень удобно )

Вот например что приходит если один веник отвалился:
This is an automatically generated mail message from mdadm running on XXXXX

A DegradedArray event had been detected on md device /dev/md0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities: [raid6] [raid5] [raid4]
md0: active raid6 sda1[1] sdc1[4] sdd1[3] sde1[2]
2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/4] [_UUUU]

unused devices: none
Рекоменую протестировать перед использованием:
mdadm --monitor -1 -m myname@myisp.com /dev/md0 -t
4) У софтрейда очень низкая скорость перестройки массива
В дефолтной конфигурации – да. А если вы дочитаете до конца статьи – узнаете как сделать так, чтобы все перестраивалось со скоростью самого медленного веника :-)

О роли bitmap


Linux-овый софтрейд поддерживает замечательную фичу: bitmap. Там отмечаются измененные блоки на диске, и если у вас почему-то отвалился один диск из массива, а потом вы его обратно добавили – полная перестройка массива не нужна. Чертовски полезно. Хранить можно на самом рейде – internal, а можно в отдельном файле – но тут есть ограничения (на тип ФС например). Я сделал internal bitmap. И зря. Internal bitmap тормозит безбожно т.к. постоянно дергается головка веников при записи.

Посмотрим на скорость:


Скорость можно тестировать например так:
time sh -c «dd if=/dev/zero of=ddfile bs=1M count=5000»
time sh -c «dd if=ddfile of=/dev/null bs=1M count=5000»

Результаты для моего RAID-6 из 5xWD 1Тб получились следующие: чтение 268МБ/сек, запись 37МБ/сек. Все разводят руками и говорят: ну а чего же вы хотели? RAID-6 тормозит при записи, ведь ему надо прочитать то что было записано раньше, чтобы посчитать обновленные контрольные суммы для всех дисков. А еще и этот bitmap…
Скорость перестройки массива – около 25МБ/сек – полная перестройка массива до 15 часов. Вот он, ваш ночной кошмар.

Решаются проблемы просто:


  1. У драйвера рейда в Linux есть такой полезный параметр: stripe_cache_size
    значение по умолчанию которого равно 256. Слишком низкое значение – резко снижает скорость записи (как оказалось). Оптимальное значение для многих – 8192. Это — кол-во блоков памяти на 1 диск. 1 блок это обычно 4kb (зависит от платформы), для 5-и дискового массива кеш займет 8192*4кб*5 = 160МБ.
    echo 8192 > /sys/block/md0/md/stripe_cache_size

    Действовать начинает моментально. Теперь в большинстве случаев драйверу не приходится читать диск перед записью (особенно при линейной записи), и производительность резко вырастает. После перезагрузки пропадает, чтобы не пропало — добавляем в какой-нибуть /etc/rc.local например.

    Скорость перестройки массива теперь – 66МБ/сек (это сразу по всем дискам, около 5 часов на весь массив), скорость чтения осталась той-же, а вот скорость записи – выросла до 130МБ/сек (с 37).
  2. Переносим bitmap на отдельный диск (в моём случае — системный). Если системный веник сдохнет — ничего страшного, массив восстановится и без bitmap-а.
    Головка больше не дергается при записи лишний раз, и скорость записи вырастает до 165МБ/сек.
    mdadm -G /dev/md0 -b /var/md0_intent

Итак, за 10 секунд мы подняли скорость записи с удручающих 37 МБ/сек до вполне приличных 165 МБ/сек (более чем в 4 раза!!). Теперь через Samba по сети файлы и пишутся и читаются 95-100 МБ/сек, и планировавшийся из-за низкой скорости рейда апгрейд сервера придется отложить на неопределенное время – производительности дохленького Opteron 165 теперь с лихвой хватает для всех поставленных задач :-)
С новым годом :-)

PS. Внимание! Под рутом ходить только на трезвую голову!
PS. В непростой схватке, первый пост на хабре в 2011 году опубликовал все-таки я
PS. infi
Михаил Сваричевский @BarsMonster
карма
975,7
рейтинг 0,0
Пользователь
Самое читаемое Администрирование

Комментарии (129)

  • +23
    таймгет!
  • +2
    Мб/сек

    Может, всё-таки МБ/сек?
    • +3
      Поправил. Хотя правильнее было бы МиБ/сек ;-)
    • 0
      Не очень понятно про реальную скорость работы дискового массива.

      Вот приведу пример реально работающего веб-сервера на базе CentOS x86_64,
      версия 5.8 (Final),
      параметры сервера замерены утилитой Sysinfo


      • 0
        Ну, я тоже тут не вижу ничего, что говорило бы о скорости работы рейда :-)
        • 0
          Тогда добавлю еще один замер

          Пример реально работающего веб-сервера на базе Ubuntu x86_64,
          версия 12.04.2 LTS,
          параметры сервера замерены утилитой Sysinfo
          Скорость массива RAID6 10469 MB/s


          • 0
            Это не скорость рейда, это скорость выбранного метода выполнения команды XOR над данными.
            При старте системы mdadm тестирует различные варианты, и выбирает наиболее быстрый вариант:

            Feb 26 13:03:05 LBox2 kernel: [   23.080006] raid6: sse2x1    5387 MB/s
            Feb 26 13:03:05 LBox2 kernel: [   23.148009] raid6: sse2x2    6130 MB/s
            Feb 26 13:03:05 LBox2 kernel: [   23.216011] raid6: sse2x4    9296 MB/s
            Feb 26 13:03:05 LBox2 kernel: [   23.216012] raid6: using algorithm sse2x4 (9296 MB/s)

            • 0
              Согласен, что показывается именно этот параметр.
              Есть ли у кого он больше 10000?
              тогда вот еще один мой замер

              Пример реально работающего веб-сервера на базе CentOS x86_64,
              версия 6.2 (Final),
              параметры сервера замерены утилитой Sysinfo

              • 0
                Я думаю вы бот.
  • +4
    ТруЪ
  • +14
    За пост в 00:00 вам следует давать приз настоящего гика :) Надеюсь, выложите скрипт, которым вы публиковали :) С Новым годом!
    • +5
      Не, это не скрипт )
      Выполняем на сервере
      watch -n .1 date

      (ошибка времени там не более 0.01с — постоянная синхронизация с правильными NTP серверами), и ручками жмем «Опубликовать» в момент Х :-D
      • 0
        А какое количество секунд было в момент опубликования поста?
        • +3
          Где-то 0.7 :-)
  • +12
    Представляю вас, сидите такой, один, одинокая бутылка пива на столе, надкусанная вобла, грустный вид задумчивый, написали, отправили, СПАТЬ!!!
    • +3
      Не, пиво я не пью ) Семья тут же сидит, сразу за монитором
      Кстати по телевизору куранты шли с задержкой примерно на 13 секунд относительно правильного времени, так что я ничего не пропустил ;-)
      • +5
        Пора апгрейдить телевизор, не успевает. :)
        С Новым Годом!
    • +5
      • –1
        Forever Alone среди наших мемов как то не прижился )
  • +2
    Великолепно! возьму на заметку.

    Вопрос не по теме, а именно по Samba. На каком железе (сетевом) и с какими настройками самбы и сетевого стека достигнуты такие результаты? Какой дистрибутив, ядро? Кто является самба клиентом и с какими настройками.

    В общем-то столько вопросов потому, что у меня обычно самба работает ну ОЧЕНЬ медленно. А iperf и nfs на полную ширину канала.
    • 0
      Сетевое железо — встроенная гигабитная карта с обоих сторон. Какое-то время работало через D-Link DGE-528T с тем же результатом. Свич — встроенный в DGl-4500, с отдельным DGS-1008TL тот же результат. ОС — Ubuntu Server в версиях с 8 по 10 на дефолтном ядре было так. Конфиг крутил немного, сейчас покажу:
    • +3
      Опс, клиент самбы — Windows Vista/7.

      Вот что в самбе недефолтного настроено:
      socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=262140 SO_SNDBUF=262140
      read raw = yes
      write raw = yes
      level2 oplocks = yes
      wide links = yes
      getwd cache = yes
      use sendfile = yes
      large readwrite = yes
  • 0
    не вставило.
    после приятного опыта работы с контроллерами 3ware больше ни один приличный сервер я не оставлю без аппаратного контроллера.
    из последних — SVN на 3ware 9650SE c 2 портами, 2 х WD (Black, вероятно) RE4, не нарадуюсь.
    • +1
      Ок, вы поставили карту за 11к рублей. Опциональной батареи я полагаю не покупали.
      Какие бонусы вы получили за эти деньги, которые бы не дал нормальный Linux-овый софтрейд (не fake-рейд)?
      • +1
        батарея неактуальна для конкретно этого сервера, поскольку:
        а) резервированы БП
        б) есть приличный ИБП от Powerware
        в) чтение серьезно преобладает над записью

        что касается плюшек:
        а) встроенный кэш; 128М, но достаточно для приличных бонусов к скорости
        б) скорость работы; я могу рассчитывать на отличные показатели независимо от IO системы и нагрузки на процессоры
        в) надежность; только аппаратному контроллеру я могу доверить 60 ГБ исходников проектов

        чего не дал бы софтрейд:
        а) ускорения за счет кэша контроллера
        б) ускорения даже raid1 за счет синхронизированных дисков и опять же кэша
        в) надежности; не раз я понимал, что md не пишет одновременно на оба диска в случае raid1 и при крэше системы рейд развалится
        г) диски raid edition в raid1 гарантируют, что один сбойный сектор не повлияет на сиюминутную работоспособность; вам попадался диск, который минут 5 безуспешно пытается один сектор считать?
        д) etc

        а еще вот что скажу: я щупал жирными пальцами raid10 из sas-дисков на 15к + полгига кэша на контроллере и скажу вам, что md бы конкретно от##сал.
        • 0
          2a) Ммм, только есть проблема ) Скорость доступа к этому кешу — 1Гб/сек (ограничено PCI-E 4x) + латентность порядка микросекунды. Кеш в системной памяти тупо быстрое в 10 раз и более, и ни в чем не хуже. Единственная ситуация когда нужен кеш на карте — это с батарейкой.
          2б) В случае софтрейда где не требуется расчет паритета (как в вашем случае) — загрузка процессора на работу с диском равна абсолютному 0.
          2в) В данном случае это вопрос вашей веры.

          3а) В данном случае есть замедление. См. 2а)
          3б) ????? Софтрейд точно также ускоряется в 2 раза на RAID-1.
          3в) Пишет. Иначе не было бы прироста скорости записи при RAID-1. Если не пишет, но не в той последовательности — нужно смотреть настройки очереди команд для веников.
          3г) Веники RE пригодились бы и софтрейду конечно. Если веник 5 минут бэдблок будет читать, его просто выкинет из софт рейда, точно также как и с железным рейдом.

          • 0
            Опс, в 3в — «если пишет одновременно, но не в той последовательности»
          • –1
            2а) 2ГБ/с в дуплексе — достаточно; кэш в системной памяти — это круто, если память есть… а если нет? а кэш дисков тоже не нужен? не знаю, чего вы к батарейке прицепились?
            2б) точняк, и io wait — тоже херня; а когда дисков не 2, а 4, 8, 16?
            3б) я про 2 раза ничего не говорил, это редко достигается
            3г) RE-диски имеют еще тележку фич, про которые софтрейды не в курсе

            вообще, это религиозный вопрос, сродни amd vs intel;
            задачи у всех разные, средства тоже.
            сомневаюсь, что кто-то в здавом уме будет строить отказоустойчивые кластеры на софтрейдах.
            • +3
              2a) — за 11к рублей знаете сколько лишней памяти купить можно? ;-)
              2б) io wait не херня, но контроллер с ним никак не поможет.

              Так я ж не говорю что железный рейд это всегда плохо )
              Достоинства их известны, просто вы про них не упомянули.
              А упомянули только то с чем и у софтрейда нынче хорошо.

              А то как строят кластеры — это не только вопрос разумного выбора, но и откатов в разной форме :-)
              • 0
                возможно, мои понятия о софтрейдах уже несколько устарели, не спорю :)
                однако, хочу заметить, даже за несчастных 11к рублей не докупить DIMM-разъемов на мать ;)
                • 0
                  За эти деньги уже 8Гб серверные модули есть ;-)
                  Под них место обычно находится )
                  • 0
                    есть и 32-гиговые, но с производительностью у них так себе, особенно в наших задачах.
                    да и несерверные матплаты имеют ограничение на память.
              • +2
                и да, с новым годом!
              • 0
                У аппаратно рейда есть одно преимущество, которого у софтрейда никогда не буден всилу архитектуры:
                в случее аппаратного рейда система не видит дисков за ним и соответственно ей глубоко параллельно что с ними происходит.
                в случае софтрейда система (не только ОС но и БИОС) видит сами диски, и в случае проблем с ними получает гемморой.
                Реальный пример: на половину сдох загрузочный хард, т.е. на этапе биоса инициализировался, но дальше вставал в ступор, т.к. появился бэд в самом начале диска, и система не стартовала. Ситуация конечно была исправлена тупым выкидыванием этого диска и загрузкой со второго, но сама ситуация прекрасно иллюстрирует — в случае аппаратного рейда контроллер бы по таймауту выкинул сбойный диск и продолжил загрузку.
                Так что хотите гарантированной загрузки — ставьте/используйте аппаратный рейд, а сторадж можете уже делать как хотите.
                Ну и за компанию еще один пример:
                софтрейд, зеркало, один хард вылетает полностью, но система после ребута не поднимается. Причина? Загрузчик был только на вылетевшем харде ;)
                • 0
                  Да, загрузка с рейда — это одно из двух преимуществ железного рейда. Но платить за это столько денег…
                  Уж лучше по сети грузиться и потом работать с локальным софтрейдом :-D

                  Ну а скрытие дисков имеет и обратную сторону — мониторить их сложнее, приходится использовать специфичные тулзы.
                  А я вот и пальцем не шевеля вижу графики температуры и смарт по каждому диску.
                  • 0
                    Ну как всегда — кому какие требования — тот столько и платит, простой критичен — $400 найдутся сразу, кому нет — подождет пока админ/сервисник не придет и не тыкнет.

                    Ну а мониторинг — это больная тема, с другой стороны, тот же HP SmartArray когда стоят HPшные диски, обычно начинает жаловаться сильно раньше чем харды начинают реально умирать. Но кому что :)
                  • 0
                    я тоже вижу, чяднт? :)
            • 0
              Не поверите, но довольно часто строят отказоустойчивые кластеры именно на софтовых рейдах, т.к. их банально проще мониторить. А надо чтобы вылетевший фиск поменяли и чем быстрее, тем лучше. А то никакое резервирование не спасет. Из минусов аппаратных рейдов так же восстанавливаемость в случае смерти контроллера. Настоятельно рекомендуется искать контроллер с точно такой же версией прошивки. Вот в общем то основные минусы аппаратных контроллеров.
              • 0
                не пойму, что сложного в мониторинге с аппаратными контроллерами?
                smartctl /dev/twa0 -d 3ware,0 -a
                smartctl /dev/twa0 -d 3ware,1 -a

                слив не засчитан.
                не поверите, контроллеры прошиваются ручками.
                • 0
                  А долезть до SMART самих дисков?

                  Для этого нужно иметь такую точно железку, чтоб её можно было прошить той же версией прошивки. Да, не очень сложно. Но тупо поменять контроллер на любой другой проще — время простоя меньше.
                  • 0
                    Поясню, просто номер диска в массиве неоднозначный идентификатор. Если spare диск воткнется на место первого — что будет показывать smartctl /dev/twa0 -d 3ware,0 -a?
                    • 0
                      # tw_cli show
                      
                      Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
                      ------------------------------------------------------------------------
                      c2    9650SE-2LP   2         2        1       0       1       1      -        
                      
                      # tw_cli info c2
                      
                      Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
                      ------------------------------------------------------------------------------
                      u0    RAID-1    OK             -       -       -       931.312   RiW    ON     
                      
                      VPort Status         Unit Size      Type  Phy Encl-Slot    Model
                      ------------------------------------------------------------------------------
                      p0    OK             u0   931.51 GB SATA  0   -            WDC WD1002FBYS-02A6 
                      p1    OK             u0   931.51 GB SATA  1   -            WDC WD1002FBYS-02A6

                      Как видите, вполне себе идентифицируемо, проблем пока у меня не возникало…
                      • 0
                        Ну возможно… может давно не пробовал просто. Сейчас драйвера к 3ware в ядре есть — намного лучше стало. Раньше было не найти под нужное ядро. Так что да — остается из недостатков в основном цена.
                        • 0
                          глядя на остальные комплектующие, я бы не сказал, что 350$ это сколь-нибудь ощутимая сумма… иногда я даже подумываю прикупить такой для дома :)
                • 0
                  Это у вас еще контроллер хороший. Большая часть raid начального уровня, которые LSI raid, которые mpt, просто выводят число от 0 до 255 характеризующее здоровье массива. Не уверен даже что они smart нижележащих дисков опрашивают.
            • +1
              2а) 128 МБ кэша на контроллере и 32ГБ физической памяти на сервере… Ну пусть дешевый сервер, 4Г памяти, не поверю что там под файловый кэш не найдется 128мб. если же действительно не найдется, то у того сервера будут проблемы другого характера и будет уже не до производительности рейда.
              • 0
                все-то вы знаете.
                это сервер для сборки ява-приложений, она жадная.
        • +1
          >а еще вот что скажу: я щупал жирными пальцами raid10 из sas-дисков на 15к + полгига кэша на контроллере и скажу вам, что md бы конкретно от##сал.

          Да ты крутооой. Давай дружить?
          А правда, что в Ынтерпрайзе даже у операторш ПК сиськи на два размера больше?

          Вообще, позицию о пренебрежении программным рейдом не разделяют даже в ентерпрайзе. По крайней мере в том, который не только пальцы гнет, но и действительно серьезно подходит к делу. Например в книжке М. Лукидес «Настройка производительности UNIX-систем».
          • 0
            я не пренебрегаю программным рейдом, иногда юзаем и их.
            как я уже говорил, для каждой задачи свое решение.
            каждый выбирает себе своих друзей :)
            • 0
              и при этом демонстрируете незнание реальных характеристик программного рейда? все утверждения кроме в) — не являются существенными или истинными.
              • 0
                у меня только один вопрос: как вы думаете, windows 2k3, 2k8 так же хорошо строит программные рейды, как и mdadm?
                • 0
                  я не в курсе — не использую.
                  предположу, что коммерческая компания может сделать не хуже.
                • 0
                  могу ответить: явно хуже. Как минимум вот аргумент: в инсталляторе нет опции, чтобы сразу ставить на софтраид.
        • 0
          я конечно поздно, но у меня с декабря на тумбочке тусит рейд10 с SAS15k + 1024Mb Raid Cache + Battery и чО? :D
          У такого варианта почти всё сосёт :D
          • 0
            Угу. Пока не захотите докинуть немного дисков ;-)

            Вот у меня сейчас всего 500Гб свободно осталось, куплю 2 веника, докину в массив на лету и все будет шоколадно ;-)
            • 0
              Ну у меня тоже шоколадно, ещё Qsan'овское хранилище рядом :D
        • +1
          Добавлю ещё одну не совсем очевидную плюшку.

          Программный рейд можно собрать не только из физических дисков. Его можно собрать из чего угодно… даже из dd образов.

          Так это я к чему…
          Пример:
          После шести лет безотказного функционирования в сервере аппаратного контроллера с батарейкой — сгорел сам сервер(
          Контроллер то вроде бы как остался, но только воткнуть его некуда, т.к. в новые сервера такие интерфейсы (серверные варианты PCI) уже не ставят. В итоге пришлось собирать рейд из образов дисков программным образом при помощи специального совта.

          Как же всё было бы проще, если бы это был программный рейд.

          В общем, программный рейд (линуксовый) поднимается не посто на любом контроллере… Он поднимается вообще на любом железе, даже на совершенно других дисках с другой геометрией, другим физическим интерфейсом… даже на системах с другой архитектурой… ага…

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

    • 0
      Отрадно, на некоторых серверах у нас стоит 3ware за дофига денег (2*12портовых контроллера), но рейд все равно не используется=)
  • +4
    > PS. Внимание! Под рутом ходить только на трезвую голову!

    спасибо. а то прочитав тут же собрался протестировать. подожду до завтра.
  • 0
    Raid-6 требует как минимум 4 дисков. Это как раз тот рубеж когда лучше брать raid-10. И скорость выше и отказоустойчивость больше.
    • 0
      Raid-6 и из 3-х собирается ;-)

      У raid-10 есть 2 серьёзные проблемы:
      1) Его можно убить 2-мя удачно сдохшими вениками
      2) Его не расширить при желании. В RAID-6-же можно добавлять по 1 венику и расширять массив. Особенно актуально для домашнего применения.

      По скорости записи безусловно RAID-10 будет сильно быстрее на случайной записи, и несколько быстрее при линейной.
      • +1
        Из 3-х не вижу смысла, как в прочем и из 4-х. Сам держу его на массиве из 9-ти. И обязательно попробую Ваши рекомендации.
        • 0
          Насчет смысла — полностью поддерживаю :-)
      • +1
        Производительность рейда зависит от паттерна использования, если будут постоянные записи меньше размера страйпа, то и пятерка и шестерка сразу просядут в скорости, т.к. будут тратить время на чтение контрольных сумм, у десятки такого пенальти нет.
        Ну а причина, по которой сделан рейд с неподходящим размером рейда это уже отдельный вопрос.
        • 0
          Так с тем что RAID-5/6 не рулят на мелких случайных операциях — никто не спорит :-)
          • 0
            Ну, как показала практика, ОЧЕНЬ многие об этом не знают, и пихают пятерку куда попало…
  • –1
    ещё советик применительно к WD и кешу. У новых WD-шек есть гадкая технология, которая без повода паркует головы через определённое время (порядка 8 секунд), а sync кеша по дефолту производится раз в 10 секунд, в итоге диск постоянно запарковывает-распарковывает головы, что дико снижает скорость и ресурс диска. Проверьте, послушайте как работают Ваши диски. Если есть такая фигня — уменьшайте промежутки между sync-ами кеша.
    • 0
      sync по дефолту-ж вроде 5 секунд.
      В любом случае, проблема лучше решается отключением парковки голов в простое…
      • 0
        а вот не отключается =) это «новая» фича вдшек, кажется встречается только в зелёной серии. Работает на аппаратном уровне и никак не связано с программной парковкой головок самой осью
        • 0
          Я имел ввиду именно отключение аппаратной парковки :-)
          Тут было: habrahabr.ru/blogs/sysadm/106273/
          • 0
            оо именно про это зло и писал =) оказывается нашли уже способ на коленке переключить интервалы в винте =)
            • 0
              Да уж, только что проверил — у меня оказывается 1 диск из 6 зацепило :-)

              193 Load_Cycle_Count 0x0012 001 001 000 Old_age Always — 1637307
              193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always — 127
              193 Load_Cycle_Count 0x0032 181 181 000 Old_age Always — 58368
              193 Load_Cycle_Count 0x0032 181 181 000 Old_age Always — 58388
              193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always — 530
              193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always — 130


              Жесткач.

              • 0
                да я смотрю не один а цельных 3 =))))) 2 зацепило, а один поматросило прилично ))))
              • 0
                а теперь отключай и ещё раз скорость потести =)
              • 0
                Уточните, плиз, модели дисков, т.к. насколькко мне известно это касается только Green серии.
                • 0
                  4 грина, 1 black, 1 hitachi 2.5' ;-)
                  Какой из них такое делает — еще вопрос )
                  • 0
                    2 дня прошло. Экипаж волнуется ©
                • 0
                  Оказалось это ноутбучный Hitachi, ему можно :-)
                  По 50к у новых гринов, которые EARS с 4кб секторами.
                  Старые грины которые на год старше — по 130.

                  • 0
                    50к они набрали за 3 месяца.
  • +3
    Новый Год, бывает раз в году. А Вы тут про веники…

    Шампусик, икорочка и пару сисек для комплекта. А RAID 6 подождет!
    • +2
      Икорочка и сиськи — оно ж круглый год. Подождет ;-)
      А вот ускорить RAID6 в 4 раза — даже не раз в год ;-)
      • +2
        Ну кому чего… )))

        /me ушел мять сиськи
  • +15

    :)
    • +2
      Хотел что-то подобное в конец статьи, счас добавлю :-D
      Спасибо :-)
  • +2
    Как насчёт того, чтобы опубликовать пост в 23:59:59 31.12.2011 также?
    • +1
      Если будет что написать — то можно даже одну в 23:59:59, и вторую в 00:00:00 ;-)
  • +2
    Спасибо за новогодний позитив и полезную информацию. «Добавление вывалившегося веника» добавляю в список любимых фраз :)
  • +3
    Отлично. Разогнал RAID-6 на 12 дисках с 70мб/c до 350. И это только страйп-кешем, без перенастройки битмапа.
  • 0
    Под ZFS кстати по каким-то тестам софтовый рейд обходил хардовые ))
    • +4
      Это вполне нормально, если дисков не много, а процессор (системы) — быстрый.
      Хардовый RAID уже давно не панацея, как и «софтовый» — не «решение для бедных», это просто точка зрения времен 386-х процессоров, там — да, там центрального процессора просто физически не хватало еще и на обсчет RAID, приходилось ставить отдельный, выделенный. Сегодня же очень часто процессоры системы бывают в десятки раз мощнее тех микропроцессоров, на которых строятся «хардовые RAID», и проблем с нехваткой производительности для операций RAID просто нет.
      • 0
        сервера разные бывают, знаете ли.
        нередко нет возможности выделять мощности CPU или отрезать кусочки RAM для тупого чтения/записи инфы на диски.
        • +1
          Редкий сервер упирается одновременно в диски (раз нужен быстрый рейд), память (она копеечная) и процессор (никогда не видел нагрузку рейдом больше 2-3% на вполне себе среднем ксеоне, без изысков).
        • +1
          Очень часто опасность этого сильно переоценена.
    • 0
      Эх, интересно сравнение максимального оптимизированного по производительности RAID средствами Linux с таким же уровнем RAID на ZFS.
  • 0
    У меня: RAID-5 массив 4*750Gb винтов (два ST3750640NS, WD7500AACS, WD7500AADS) при значении stripe_cache_size 256: скорость записи 82,8 MB/s, скорость чтения 181 MB/s.

    После echo 8192 > /sys/block/md0/md/stripe_cache_size: скорость записи 111 MB/s, скорость чтения 179 MB/s.

    Добавления bitmap'а на системном диске скорость записи не изменило.
  • +2
    ОК, спасибо за идею. В ближайшее время я проверю это на «большом железном» рейде (топовый рейд от адаптека). Прошлые разы дефолтные настройки софтрейда уделывали железный на raid0, но на raid5/raid6 проигрывали категорически. Попробую теперь сравнить с указнными настроками. Но там скорости другие, топовую, какую я видел там — это 900МБ/с, нормальная скорость записи — около 450Мб/с.
    • 0
      Хм, а можете уточнить хар. рейд0? Интересно что стало узким местом
      • +1
        5ая серия adapteck'а, лениво смотреть точную модель, 16 SAS-каналов к нескольким десяткам дисков. Узким местом рейда стал он сам (у него там есть внутренние лимиты), узким местом софтового рейда стал PCI-E x4 и возможное пересечение по SAS-каналам к винтам. Ну и нужно понимать, что компьютеры имеют ограниченную производительность по прерываниям. У меня и с сетевухи больше 8-9 гигабит выжать не получается (при формальных 10).
    • 0
      Ну, с такими скоростями не каждый контроллер дисков (без рейда) столько пропустит.
      Например ICH10R — 660Мб/сек предел.
  • 0
    А я с прошлого года воюю с пингвиновым рейдом.
    Вводное — Gigabyte GA-P55A-UD4, диски WD Caviar Black 3 штуки 2 TB.
    Задача — сделать RAID5 в линуксе. Основное применение — хост для зоопарка виртуалок в VMWare Player.

    Сначала я создал рейд-массивы средствами материнки для Ubuntu 10.10. Но это получился FakeRAID, утилиты для работы с которым в линуксе официально в стадии alpha-версии. Посему dmraid не поддерживает таблицу разделов GPT (а таблица типа MSDOS не тянет массивы больше 2 ТБ). kpartx поддерживает, /dev/mapper/ инициализируется, всё вроде пашет, но через неделю активной работы файловые системы почему-то рассыпаются в хлам.

    Затем не глядя был куплен хардварный рейд-контроллер Promise Fasttrak TX4660. Оказалось, что для него есть драйверы только для редхата и сусе. Ну что ж, удалось завести драйверы в CentOS 5.5 (в сравнении с убунтой эта ось как win95 к winxp, такой олдскул :). Работает вроде стабильно, но после убунты в центоси работать непривычно (шрифты — ужасужас, грузится минут пять и т.д.), да и драйвер сыроват, периодически плюётся ASSERT'ами в сислог. И почему-то оооооочень долго монтируются разделы. Скажем, 3.6 ТБ reiserfs минуты на две заставляет задуматься mount. А если тыкнуть кнопку reset, то перемонтирование разделов после такого аварийного завершения растягивается минут на 10.

    Сейчас уже больше склоняюсь к тому, чтобы выкинуть промис и поставить убунту на LVM с SoftRAID. От системы не требуется супер-скорости. Нужна отказоустойчивость и поддержка одного мегараздела на 3+ ТБ для примерно сотни образов виртуальных машин с разными конфигурациями, которые должны быть всегда под рукой, ибо в нашей работе зачастую до 4х совершенно любых из имеющихся образов запускаются одновременно.

    Что посоветуете?
    • +2
      > И почему-то оооооочень долго монтируются разделы. Скажем, 3.6 ТБ reiserfs минуты на две заставляет задуматься mount.

      Это фича reiserfs, разделы больших размеров монтируются заметно долго.

      > Нужна отказоустойчивость и поддержка одного мегараздела на 3+ ТБ для примерно сотни образов виртуальных машин с разными конфигурациями, которые должны быть всегда под рукой, ибо в нашей работе зачастую до 4х совершенно любых из имеющихся образов запускаются одновременно.

      Объединить диски в рейд, на них поднять LVM. Внутри VG создавать логические диски для каждой из машин (а не хранить их в виде образов на файловой системе).
    • +2
      RAID-контроллеры компании «Обещание» — живое опровержение распространенного мнения, что если что-то делать достаточно долго, то рано или поздно делать это можно научиться.
      Promise делает контроллеры дисков, дайбох памяти, со времен 286-х копьютеров.
      И все еще делает ужос вида «подари врагу, да еще приплати, чтобы взял»
      • 0
        не скажи, во времена isa и vlb их кеширующие и рейдконтроллеры для ide вообще были практически единственными в бюджетном секторе, и давали таки очень заметный прирост, при адекватных вложениях. я помню на isa контроллере windows 95 ставилась почти ровно в два раза быстрее на один винчестер, только за счет кеша, чем на тот же диск подключенный к системному контроллеру.
  • –1
    Не хватает инфы по шагам для неискущенных. Как создать raid6, как добавить туда винты, как админить, основные ньюансы…
  • 0
    Нужно софт рейд 0, на 2х SSD под Windows XP Professional SP3.
    Что посоветуете?
    • 0
      Для каких задач нужен raid0 на 2х SSD под XP?
      • 0
        База данных (dbf) 1С с 5 — 6 клиентами. Продовольственный магазин. На всех компах 1с 7.7. Windows XP.
        • 0
          Перепутал не рейд 0, а зеркало.
          • 0
            Значит скорее всего нужно увеличить надежность хранения данных. Учитывая, что эта версия ОС уже официально не поддерживается, то в данном случае я бы посоветовал взять какую-нибудь железку, чтобы отстраниться от ОС. Железку выбрал бы с небольшим запасом по требуемой скорости и с кешем. Только вот непонятно: чем был обусловлен выбор SSD дисков (они же дорогие)?
            • 0
              SSD 80 Gb SATA-II 300 Intel X25-M Mainstream 7.5 т.р.
              Итого 15 т.р думаю не дорого.
        • 0
          А какую именно задачу Вы хотите решить рейдом? Увеличение места? Ускорение? Увеличение надежности?
          Что не устраивает в работе сейчас (когда рейда нет)?
    • 0
      Был у меня рейд из SSD… Лучше 2 отдельных диска.
      1. TRIM не проходит
      2. Важно иметь доступ к SMART
      3. Если баг с прошивкой — потеряете данные на обоих дисках
      4. Только дорогие контроллеры и ICH10R тянут SSD )
  • +1
    Про железный рейд.

    Имею контроллер intel RS2BL080, рейд 6 из 8 дисков.

    1. Цена — достался (новый) за чуть больше чем 10к рублей.
    2. Батарейка не нужна ввиду наличия UPS.
    3. Кеш — 512 Мб.
    4. PCI 8x
    5. фс — ext3
    6. Диски, увы, не RE: 2 Tb, IntelliPower, 64Mb, Western Digital Caviar Green [WD20EARS], по 3к руб. за штуку.

    Скорость:
    1.
    hdparm -tT --direct /dev/sda1
    Timing O_DIRECT cached reads: 3512 MB in 2.0 seconds = 1756.33 MB/sec
    Timing O_DIRECT disk reads: 1818 MB in 3.0 seconds = 605.00 MB/sec

    2.
    time sh -c «dd if=/dev/zero of=ddfile bs=1M count=5000» — 323 MB/sec
    time sh -c «dd if=ddfile of=/dev/null bs=1M count=5000» — 644 MB/sec

    Узким местом в данном случае являются именно диски (диск вне рейда):
    hdparm -tT --direct /dev/sdb1
    Timing O_DIRECT cached reads: 506 MB in 2.0 seconds = 252.60 MB/sec
    Timing O_DIRECT disk reads: 338 MB in 3.01 seconds = 112.23 MB/sec

    Умножим этот показатель на 6 (ибо райд-6 из 8 дисков) и получим значение близкое к 605.00 MB/sec, полученное для рейда.

    Причина покупки железного рейда обычно очень простая. А как еще добавить много дисков? Т.е. покупать контроллер все равно нужно, и причем не х-ню какую-нибудь за 500 руб, которая даже пару дисков с трудом обслуживает. Так вот, если посмотреть на стоимость с учетом этого, то для приличного железного рейда переплата уже совсем небольшая.

    • 0
      Ну, я бы не сказал что все не-ноунеймовые контроллеры SATA за 20$ — хня )
      У меня например 2 веника в такую «хню» воткнуты, т.к. на матери всего 4 SATA — и по скорости и по надежности вопросов нет.
      • +1
        Модель, стоимость, скорость при одновременной работе?
        Понятно, что все от задач зависит, у меня в одном серваке в локалке стоит какой-то контроллер за 10$ и 4-мя sata портами, он с нужными задачами справляется великолепно.
  • 0
    Покажите mdadm -X /dev/sde1, какой размер чанка выставили?
  • 0
    А подобный трюк для софтварного зеркала где-нибудь описан? Там нет параметра «stripe_cache_size». А то запись в 18М в секунду как-то напрягает…
    • 0
      Ну, я его нагуглил, так что определенно в гугле описан.
      Смотреть надо в документации к ядру а не mdadm.
      • 0
        О, это важный момент — а то я всё по mdadm пытаюсь тюнинг найти. Если вдруг найдёте — сделайте, пожалуйста, update статьи — это очень полезная информация.
  • –2
    Линукс до добра не доведет, в 12 ночи в НГ страдать такой фигней, правда вас даже не жалко, ведь лох — это судьба, так и пройдет ваша короткая жизнь за настройкой перестройкой собиранием ядер и прочей мутатой. Пусть это будет лучшей встречей НГ в вашей жизни, на едине с консолью. Слов нет, совсем уже ебнулись красноглазые мутанты
    • 0
      О великий и мудрейший kuroles, я очень раз что Вы в новый год бухали до утра. Пусть так все и остается.
      • –2
        какая тупая логика нг — значит бухать либо в консоли сидеть, да уж
        • 0
          Не томите, поделитесь уже чем вы занимались в новый год, чтобы все сразу поняли, что вы — «нелох» :-)

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