К дискам можно получить доступ независимо в объеме RAID-1?

Я принимаю это find пример здесь, и Вы не интересуетесь решением, которое позволяет Вам объединить шаблоны в один find аргумент (который был бы -regex). Существует два возможных подхода: можно создать строку и позволить оболочке разделить ее на несколько аргументов везде, где существует пробел, или можно создать массив.

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

find . $(for X in sh pl sql; do echo "-name \\*.$X" -o; done | sed 's/-o *$//')

Вы могли также создать строку в цикле перед find команда; я думаю, что это сделало бы для более четкого сценария ¹.

find_options=
for x in sh pl sql; do
  find_options="$find_options -o -name \\*.$x"
done
find_options=${find_options# -o}
find . $find_options

Если Ваша оболочка поддерживает массивы (т.е. это - удар или ksh или zsh), я рекомендую использовать их вместо этого, таким образом, Вы не должны будете вставлять дополнительное заключение в кавычки.

find_options=()
for x in sh pl sql; do
  find_options+=(-o -name "*.$x")
done
unset "find_options[0]"
find . "${find_options[@]}"

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

0
25.01.2013, 18:55
2 ответа

Из того, что я понимаю, что Вы создали 3 массива RAID, каждого с присоединенным зеркалом. Можно смонтировать каждую "половину" пар как нормальные диски, но она не рекомендуется, в то время как массив работает, и обе "половины" активны, поскольку это будет десинхронизировать копии и повреждение массива. Но в случае отказа они там отдельно, и также если Вы используете его для каталогов как /boot любые процессы, которые не понимают набег исходно, будут просто рассматривать их как идентичные копии, я использую небольшой раздел с набегом 1 со многими дисками гарантировать, что машина остается загрузочной, неважно, какой диск ОС перестает работать.

Хотя это помимо дублирования базового оборудования это не обладает никаким преимуществом и требует дополнительного обслуживания (3 массива для заботы о), и диски изолируются.

Если Вы делаете это по причинам производительности, и Вы хотите большую часть IOPS (например, для сервера базы данных) Вы более обеспечены с a raid 1+0. Это было бы в основном дорожкой 3 дисков (примерно 3 раза скорость чтения-записи отдельного диска) и зеркало этого массива еще с 3 дисками. Текущий MD драйверы поддерживают это исходно, и Вы не должны справиться с набегом 1 и совершить рейд на 0 массивов отдельно, но создать единственное устройство набега:

mdadm --create /dev/md0 -v --raid-devices=6 --level=raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

Это означает, что Вы получаете общий размер массива суммы 3 дисков. Проблема с этой установкой состоит в том, что отказ 2 дисков может уничтожить все Ваши данные, если это - те же "половины" зеркала диска в 2 копиях. Диски имеют, вероятно, тот же возраст, что означает, что они начинают перестать работать в то же время. И напряжение восстанавливания на другой "половине" увеличений шанс отказа значительно:

С Вашей установкой вероятность выживания данных потерь похожа на это с raid-1+0:

1 drive fail  = 100%
2 drives fail =  80%
3 drives fail =  40%
4 drives fail =   0%

Если Вы соглашаетесь со сбалансированным IOPS/speeds и емкостью хранения с 6 дисками, Вы получаете путь лучшая устойчивость при создании набега 6 из всех устройств:

Probability of data loss in a 3 year span:
RAID5  - 0.0125 % (1 in 80)
RAID6  - 0.0005 % (1 in 1982)

Но так как Вам нужен раздел начальной загрузки (загрузчик не может чередоваться через диски), Вам нужны 2 массива, один маленький позволяет, говорят, что 256 МБ и остальные вместе, необходимо создать эту схему с fdisk или cfdisk и удостовериться что bootable флаги установлены для небольшого массива. Можно скопировать таблицу разделов от одного диска до другого с sfdisk, если диски являются точно тем же размером:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Затем создайте 2 массива:

mdadm --create /dev/md0 -v --raid-devices=6 --level=mirror /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm --create /dev/md1 -v --raid-devices=6 --level=raid6 /dev/sda2 /dev/sdb2 /dev/sdc3 /dev/sdd4 /dev/sde5 /dev/sdf6

Установщики ОС могут заботиться об этом для Вас, хотя просто удостоверяются, что отметили первый массив, который будет использоваться для /boot

С этим Вы возвращаете 1 ценность диска устройства хранения данных (общая мощность = емкость дисков * 4), массив может пережить отказ 2 дисков, и если они не одновременно, у Вас есть более чем достаточно времени и математического шанса восстановить этот массив.

Одна вещь иметь в виду с текущим потребительским качеством (коэффициенты ошибок чтения ~10^14/error) и размеры диска (> =2Tb), Вы никогда не должны использовать raid-5 для критических данных, поскольку шанс восстановления этого массива в случае отказа составляет меньше чем 50%.

2
28.01.2020, 02:28
  • 1
    , который я не имею, монтирует 3 диска, я думаю, честно если бы лучшая идея использовать только 2 жестких диска, я использовал бы его... u, думают, что набег u упоминание лучше? или лучше для использования только 2 жестких дисков? –  jpganz18 26.01.2013, 02:49
  • 2
    @jpganz18, Для чего Вы планируете использовать машину? Это как сервер или рабочая станция? Вы выполняете сервер базы данных интенсивного трафика или файловый сервер? Вы храните главным образом большие файлы? (10 ГБ +) я могу предложить другие схемы, которые могли бы работать лучше, но мне нужно больше информации –  psarossy 26.01.2013, 02:57
  • 3
    @Peter, ну, в общем, сервер разместит приложение, приблизительно 40 пользователей, генерирует файлы и все... У меня есть оценка, что единственный большой файл будет база данных и вырастет как 2 ГБ в год... не так, только для этого, к сожалению, сервер были, я, как предполагается, устанавливаю его уже, имеет эту конфигурацию и имеет 6 жестких дисков 60 ГБ каждый... (его довольно старое), я хочу настроить его в лучшем способе возможное использование всех ресурсов... какая-либо идея согласно Вашему опыту и знаниям? –  jpganz18 28.01.2013, 03:46
  • 4
    @jpganz18, Так как Вы упомянули, что сервер довольно стар, загрузка IO, не будет Вашим самым большим беспокойством с этим сервером, поскольку существует относительно низкая пользовательская нагрузка также. raid1+raid6 решением, которое я рекомендовал выше, является, вероятно, самый безопасный/больше всего эффективный путь. Тем путем Вы в безопасности до 2 дисков, если они идут на юг. Вы могли разделить его с большим количеством массивов, но они действительно не предлагают Вам ничего дополнительного. Если Вы закончили бы тем, что нуждались в большем количестве IO для базы данных и хотели бы сохранить все, как, то Вы могли сделать диски raid1 w/2 для ОС и raid10 для содержания базы данных/пользователя на оставлении 4. –  psarossy 28.01.2013, 09:52
  • 5
    , я думаю, что необходимо разъяснить производительность RAID6. Неухудшенное чтение очень хорошо (предположение, что Вы не проверяете четность, которой я верю, верно в mdraid), вероятно, еще лучше, чем raid10. Ухудшенное последовательное чтение в порядке. Ухудшенное случайное чтение является медленным. Последовательная запись в порядке. Случайная запись ужасна. –  derobert 28.01.2013, 22:25

Что-то здесь не имеет смысла.

Массив RAID1 состоит из 2 или больше дисков, все из которых имеют то же содержание. Таким образом, при создании массива RAID1 с 6 дисками у Вас есть пять зеркал, не три.

Можно иметь в виду, делают три массива RAID1, каждый состоящий из двух дисков. Затем у Вас будет три различных md устройства к доступу. Это не скроет диски /dev/sd[a-f], но Вы обычно не будете получать доступ к данным по ним непосредственно, когда они будут частью RAID-массива. (Вы все еще получаете доступ к ним непосредственно для вещей как smartctl.)

Вы могли также сделать массив RAID10 с 6 дисками, который даст Вам сингл md устройство для всех шести дисков, и эффективно имело бы три зеркала. Это также было бы быстрее.

Установщик Debian может настроить все их для Вас (я вполне уверен, он знает о RAID10, если не необходимо будет переключиться на alt-f2 и использовать mdadm непосредственно для создания RAID10).

Обычно Вы запускаете программное обеспечение Linux RAID на разделах, не все диски. Кроме того, если Вы используете уровень RAID кроме 1, я рекомендую делать два раздела: маленькие 256 МБ один на каждом диске, RAID1, для /boot, и затем второй раздел, содержащий остальную часть диска, на любом уровне RAID, Вы хотели бы. GRUB2 имеет довольно хорошую поддержку RAID1, не так для чего-либо еще. Так /boot является обычно лучшим как RAID1.

Обратите внимание, что, если у Вас есть встроенный RAID в BIOS, вероятно, fakeraid, и необходимо использовать программное обеспечение Linux RAID вместо этого — по крайней мере, если это - новая установка, и машина будет только для Linux. Необходимо настроить BIOS для выполнения в режиме AHCI, не режиме RAID.

(При расходовании 400$ + на фактический аппаратный RAID-контроллер проверьте его документацию на то, как настроить его. Это, вероятно, скроет диски позади него и только выставит объемы, которые Вы экспортируете.)

1
28.01.2020, 02:28
  • 1
    Спасибо, хорошо, у меня есть сервер с 6 жесткими дисками, таким образом, я планировал использовать 6, 3 mirrow других 3, но я хочу, чтобы эти 3 показались только одним в y наше мнение, которое RAID является лучшим? –  jpganz18 25.01.2013, 21:17
  • 2
    @jpganz18 Это зависит от того, для чего Вы используете сервер. Различные уровни RAID имеют различные компромиссы. Можно ли описать то, для чего Вы являетесь планированием использования его? (В другом вопросе, возможно). –  derobert 25.01.2013, 21:21
  • 3
    благодарит, ну, в общем, его просто простое приложение с базой данных, которая могла стать немного большим (приблизительно 50 ГБ) через несколько лет, но они получили сервер с 6 дисками, таким образом, я думаю о, используют их всех... какая-либо идея? –  jpganz18 25.01.2013, 22:45
  • 4
    @jpganz18 я предложил бы RAID10, мог бы также использовать их для скорости. Вы волновали бы с одним объемом от RAID10, который можно использовать LVM для разделения. (Действительно создайте отдельные разделы и массив для начальной загрузки/). В зависимости от DB и ожидаемой загрузки записи, можно хотеть посвятить 2 из дисков (разделите raid1), только для журналов отката базы данных. –  derobert 25.01.2013, 22:49

Теги

Похожие вопросы