Недавно купил новый винчестер.
Решил сделать на некоторые данные Linux RAID1, хотелось и надёжность увеличить, и скорость чтения. Как я раньше думал, при RAID1 данные зеркалируются и их читать можно так же, как и в RAID0 - половину с одного винта, половину с другого. Но когда я так сделал скорость получилась такая-же (у меня один винт - 68мб/с, второй 100мб/с, в этом диапазоне скорость колебалась). Потом решил попробовать сделать RAID0 и скорость стала 137мб/с (что логично - в 2 раза быстрее медленного винчестера)
Но можно-ли заставить RAID1 читать с винчестеров по кускам параллельно, как RAID0?
Система: Ubuntu 8.04, SATA II, создавал RAID1 как:
Ещё один вопрос. Внутри RAID массива можно создать таблицу разделов и разделы, потом с ними работать, например, в gparted (нумеруются они как /dev/md1p1 и т.д). Но в некоторых манах/форумах пишут, что для этого используют LVM внутри RAID. Ничего плохого не будет, если использовать первый способ? Не хочется ещё одну прослойку создавать
ну у вас же раид1, один основной, второй курит в стороне и пишет изменения.
Т.е нельзя на практике? Вернее, в Linux RAID1 такое не поддерживается?
Чисто теоритически можно увеличить скорость _чтения_ (записи понятно нельзя) за счёт того, что данные дублируются. Т.е те блоки, которые одинаковы на обоих hdd читать параллельно (чётный блок 1й винт читает, нечётный второй). Конечно, если блок ещё не успел синхронизироваться - его читать с основного (но такое будет редко).
Да и на википедии (русской) пишут, что RAID1 увеличивает скорость чтения за счёт распараллеливания запросов
Да и на википедии (русской) пишут, что RAID1 увеличивает скорость чтения за счёт распараллеливания запросов
видно что-то перепутали, это относится к 0 уровню
некоторые дисковые массивы так умеют делать.
думаю нет никаких причин, препятствующих распараллеливанию запросов на чтению с двух дисков в синхронизированном первом рейде. Все дело лишь в драйвере.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
думаю нет никаких причин, препятствующих распараллеливанию запросов на чтению с двух дисков в синхронизированном первом рейде. Все дело лишь в драйвере.
думаю нет никаких причин, препятствующих распараллеливанию запросов на чтению с двух дисков в синхронизированном первом рейде. Все дело лишь в драйвере.
А какой драйвер если всё идет через mdadm?
а кто обслуживает ввод вывод в файлы типа /dev/md0, какой у них там старший номер устройства и какому драйверу внутри ядра он соотвествует? Я не знаю, у меня линукса под рукой нет, посмотрите кто может. Мне казалось, что программный raid в linux состоит из трех компонентов: утилиты, процесс-монитор и драйвер внутри ядра. Ну я могу и ошибаться. В данном случае под драйвером я имел ввиду программу, которая управляет вводом-выводом в raid.
PS а LVM прекрасно живет на устройствах типа /dev/md0
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Программный RAID этого не умеет, на то он программный. Если вам это действительно надо, то покупайте аппаратный RAID, с нормальным процессором и памятью, тогда результат будет как говорится на лицо. Еще одно замечание про RAID, что лучше сразу к ним покупать батарейку, иначе в большинстве случаев вы не сможете включить кэш на запись, и результаты будут как у обычного 1 винта.
P.S Более менее, что то производительное начинается в районе 9000 рублей
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
. Потом решил попробовать сделать RAID0 и скорость стала 137мб/с (что логично - в 2 раза быстрее медленного винчестера)
А что?
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Additional options include:
-b balance Specifies balance algorithm to use, one of:
load Read from the component with the
lowest load.
prefer Read from the component with the
biggest priority.
round-robin Use round-robin algorithm when
choosing component to read.
split Split read requests, which are big-
ger than or equal to slice size on N
pieces, where N is the number of
active components. This is the
default balance algorithm.
Не знаю, умеет ли это мдадм, но фряшный гмиррор умеет, так что не надо нести пургу про "да это нереально, это только железно..." Железно только рейд5 и 6 работают лучше, ибо действительно отдельный проц для объемных вычислений. Остальные (0,1,10) настолько простые, что для них аппаратный рейд нужен только для удобства мониторинга и работы с ними, не более того. Там вычислений-то выбрать нужный диск для чтения и распараллелить запись.
Additional options include:
-b balance Specifies balance algorithm to use, one of:
load Read from the component with the
lowest load.
prefer Read from the component with the
biggest priority.
round-robin Use round-robin algorithm when
choosing component to read.
split Split read requests, which are big-
ger than or equal to slice size on N
pieces, where N is the number of
active components. This is the
default balance algorithm.
Не знаю, умеет ли это мдадм, но фряшный гмиррор умеет, так что не надо нести пургу про "да это нереально, это только железно..." Железно только рейд5 и 6 работают лучше, ибо действительно отдельный проц для объемных вычислений. Остальные (0,1,10) настолько простые, что для них аппаратный рейд нужен только для удобства мониторинга и работы с ними, не более того. Там вычислений-то выбрать нужный диск для чтения и распараллелить запись.
Извиняюсь, еще раз хочется спросить. Создал raid1 на основе mdadm. Два диска Seagate Barracuda ES.2 (ST3500320NS) 7200rpm 32Mb. Результат команды hdparm -t
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Для измерения времени выполнения команды, лучше использовать программу time (или timex)
А так же время и скорость копирования показывает команда dd
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
а теперь посмотрите, сколько /dev/null весит))) cat-ом туда писать надо. Хотя это смотря где, но точно помню, что иногда при такой конструкции /dev/null просто заменяется копируемым файлом. В таком случае конечно будет медленнее...
<Admin_> mv / /dev/null
<rm-rf> ага, ты ещё как BSDobermann сделай "mv file.avi /dev/null" и потом удивляйся, почему у тебя "mplayer /dev/null" кино кажет и этот /dev/null весит 640 мегов)
Файловая система ext3. cat тоже пробовал, скорость та же. Файл /dev/null нормальный :-) timex еще не пробовал, в fedora 11 ее еще надо поставить. Домой приду, попробую. Прикол еще в другом - пробую скорость мерять на одиночном диске - все хорошо,, скорость приличная... И посмотрел на работе (тоже есть машина с таким raid1), тоже скорость низкая. Что-то я не так наверно делаю. А я еще заметил, сетка гигабитная, так если на машину копирую, так ждать надо. Если копирую на машину, где raid аппаратный, то все летает.