
Полный текст первых минут лекции «Производительность дисков, сравнение RAID 5 c RAID 10» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Здравствуйте! Этот фильм посвящен RAID-10 и RAID-5 и вообще производительности работы жестких дисков. Мы создадим упомянутые RAID-ы, а главное – измерим их производительность: производительность обычного жесткого диска, жестких дисков в RAID-5 и дисков в RAID-10,
а также диска, присоединяющегося через USB. Мы научимся измерять производительность и узнаем, какая производительность у разных вещей.
Прежде всего, какие есть показатели производительности. Существует несколько общепринятых показателей. Во-первых, показатель, который называется Sequence — последовательное чтение и запись.
Мы измеряем скорость того, как диск читает или пишет подряд, в отличие от показателя Random. Тут мы заставляем накопитель много раз читать и писать в случайно выбранных разных местах.
То есть накопитель мечется между своими разными областями, и мы смотрим, как у него получается так читать или писать. Разумеется, вы понимаете, само то, как он мечется, уже занимает время.
И мы можем проверить, с какой скоростью у него получается метаться между разными своими областями. Я тут для вас подготовил разные диски, разные рейды, и мы их все сравним.
Сравним главное — их производительность. Итак, у нас есть показатель Sequence, последовательное чтение и запись. Есть показатель Random. Этот накопитель мечется случайным образом между разными своими местами, между разными своими участками размером по 512 килобайт, каждый раз выбирая следующий участок случайным образом.
А также то же самое, но кусочки уже по 4 килобайт. Это очень широко распространено тоже. И он их тоже выбирает каждый раз случайным образом и считывает или пишет такую последовательность.
А также производительность контроллера жесткого диска, при том, что ему дается заранее заготовленная последовательность команд.
Ведь в этом случае контроллер производит некоторые действия по повышению производительности, эффективности выполнения такой последовательности.
Тут тоже кусочки по 4 килобайт, но команды контроллеру мы даем не по очереди, а сразу цепочку команд. В этом случае у него есть способность повышать эффективность выполнения такой цепочки.
К примеру, цепочка команд такая: Сначала считай и дай мне 4 килобайт из первого кусочка, потом 4 килобайт из 20-го кусочка, а потом 4 килобайт из 2-го кусочка.
Так вот, на деле контроллер сначала считает подряд из первого и второго кусочка, а потом из двадцатого. Он изменит порядок, чтобы первые два кусочка считать подряд. Это повысит скорость.
Первую и третью команды он превратит в чтение подряд, что сэкономит время перескакивания между кусочками. Далее, первый наш диск типа SSD. Размер нашего экспериментального жесткого диска 100 МБ.
SSD — это значит, что на основе электронного чипа. Второй наш диск — это магнитный, размером в 1 терабайт.
Третий жесткий диск тоже магнитный, но он внешний, подключенный через USB. Он тоже магнитный, это не флешка, это такая коробка, коробочка. То есть этот и этот, они оба в частности на основе одного и того же жесткого диска.
Единственная между ними разница, что этот присоединен через USB. Диск E у нас через USB, а диск D подключен у нас через обычную SATA, вход SATA. Обычная SATA, которая внутри. То есть этот внутри, этот тоже внутри.
SSD, который внутри. Это обычный жесткий диск, который внутри. А это внешний диск, USB. Мои предпочтения следующие. Операционная система и все программы на диске C небольшого объема, дешевые, стоящие менее 100 долларов.
Даже менее 50 долларов. Небольшой объем, но очень быстрый. Внимание! Диск SSD, он считывает со скоростью 178, а пишет со скоростью 86.
Впрочем, обычно SSD работает еще вдвое быстрее. Упомянутые скорости касаются последовательного чтения, и это очень важный показатель, потому что по статистике более половины чтения и запись — это последовательное чтение и запись, потому что в наши дни мы много работаем с
большими файлами, следовательно, их кусочки считываются и записываются подряд, ведь в здоровом положении кусочки файла располагаются подряд.
В общем, принято думать, что в 50% случаев это последовательное чтение и запись, поэтому этот показатель считается важным, и он зачастую указан на упаковках жестких дисков.
Как правило, именно такой показатель указывается на упаковке — показатель последовательного чтения и записи.
А в 25% случаев считается, что это случайное чтение и запись кусочков по 4 килобайта. Итак, жесткий диск SSD умеет считывать в моем случае 178 мегабайт в секунду.
Давайте посмотрим на картинки диска SSD, их найдем в поисковике. Посмотрим, как SSD выглядят внутри. Они выглядят как чипы, как такие флешки. На рисунке мы видим 10 чипов, 10 флешек.
Впрочем, может быть там, со второй стороны, еще есть десяток. Иногда они односторонние, иногда двухсторонние. Магнитный диск — это, напоминающий патефон, иголки с пластинками.
Иголки на головках двигаются туда-сюда, что требует времени. Требуется время перехода или время поиска. это то, что задерживает его действие, в отличие от диска SSD.
Смотрите, в Random 512 достигается почти то же самое, то есть SSD что подряд, что не подряд считывает без разницы почти, в отличие от магнитного диска, где производительность очень сильно страдает от того, что дело идет непоследовательно.
Внимание, так 70, а так 28. А теперь давайте сравним производительность при отдельных командах и предоставления заранее известной длинной последовательности команд.
Смотрите, когда 4 килобайта, но это в случайном порядке, и команды даются по очереди. Итак, он считывает 360 килобайт в секунду. Но если я даю ему сразу ряд команд, то он выстраивает их в таком порядке, чтобы все было быстрее.
Все команды, которые считывают блоки подряд, он и проделывает подряд. И мы видим, что производительность у нас возросла в 4 раза, когда заранее известен большой ряд того, что нужно считывать.
Впрочем, на нашем обычном домашнем компьютере мы с этим не очень-то и столкнемся. С таким мы столкнемся на загруженном сервере.
Там будут длинные очереди ожидания. Сервер, который одновременно используют сотни пользователей. Но если это сервер с огромными очередями ожидания, то мы не будем видеть подобное явление.
Поэтому этот показатель нам не так уж и важен. Я, как правило, смотрю на показатель Sequence. Он очень важен, а также на 4 килобайта со случайным выбором.
А теперь смотрите на диск USB. Как тут все плохо. Но это тот же самый диск, что и внутри. Если бы я взял этот диск из USB и поместил бы в SATA, то есть изменил бы подключение, и этот жесткий диск уже не проходил бы через контроллер USB.
Если бы я его напрямую внутрь подключил, скорость бы удвоилась. Далее взгляните. Вот это мой сервер. Тут у меня RAID 5 и RAID 10.
Не волнуйтесь, мы сейчас поговорим о том, что такое RAID, как их создавать и как ими управлять. Просто я вам сначала хотел показать производительность.
Смотрите, как меняется производительность, когда мы переходим от RAID 5, диск C — это у меня RAID 5, и насколько возрастает производительность при RAID 10.
Далее, что такое вообще RAID 10? Это сочетание из RAID 0 и RAID 1, то есть с помощью RAID 0 информация делится на две части, на две группы жестких дисков.
И поскольку все жесткие диски работают параллельно, то и работа с этой информацией происходит параллельно, а значит вдвое быстрее.
Далее, в каждой из этих групп делается RAID 1. Смотрите, информация A1 записывается дважды, A2 записывается дважды.
Это MIRROR. И таким образом мы получаем еще и безопасность. Вся наша информация делится на две группы. И таким образом мы увеличиваем производительность.
Еще информация дублируется внутри этих групп. И внутри этих групп, если один жесткий диск ломается, то информация остается на втором, и мы не теряем информацию.
Я повторяю, информация делится на две части для ускорения обращения к ней. И каждая из этих частей записывается на двух жестких дисках. И так мы оберегаем нашу информацию и к тому же удваиваем скорость.
Сейчас я вам покажу, что скорость удвоилась. Смотрите, чтение у нас с какой скоростью происходит? 215 мегабайт в секунду а записывается информация со скоростью 140 мегабайт в секунду а какова же у нас скорость на отдельном жестком диске 70 и 70 это обычный диск sata и смотрите вместо 70 и 70
это если последовательно мы в данном случае получили даже немного больше чем вдвое 215 и 140 ну чуть больше чем вдвое потому что жесткие диски все-таки сами по себе наверное не очень идентичны. Но вы же понимаете, что в RAID 10 половина объема жестких дисков тратится на защиту информации от поломок аппаратуры. Это и
это — копия друг друга, как и тут. То есть если бы я все это подключил в качестве обычных дисков, то я бы получил вдвое больше места, но при поломках этих жестких дисков я бы терял информацию. RAID 5 мы уже проходили, но я сделаю небольшое повторение.
в RAID 5 производятся подсчеты. Информация в RAID 5 делится по всем жестким дискам: первая часть на первом жестком диске, вторая часть на втором, третья на третьем, а на последнем жестком диске пишется сумма.
Кстати, эта сумма не всегда на последнем, в следующей строчке она может быть на другом жестком диске. Сумма каждый раз кладется на произвольный жесткий диск. Впрочем, это не имеет значения.
Главное, что это подстраховочная сумма, которая предостерегает от поломки жестких дисков. Таким образом, в примере данного рисунка мы получаем производительность в три раза большую, чем у единого жесткого диска, ведь информация делится на три части, которые обрабатываются параллельно,
записываются и считываются из трех разных мест. А четвертое место — это подстраховочное. Оно нам ничего не добавляет с точки зрения скорости.
Впрочем, на самом деле даже отбавляет, если уже вдаваться в такие подробности, потому что подсчет этой суммы в контроллере тоже требует времени. Вот смотрите, и у меня на компьютере тоже, на диске C, когда нужно писать информацию, то есть при этом подсчитывается сумма.
Ведь смотрите, считывание происходит со скоростью 200, но когда он записывает, он подсчитывает сумму. А этот контроллер у меня очень дешевый, он даже пожалуй бесплатный, потому что он встроенный в материнскую плату.
А вот при чтении в RAID 5 такой проблемы нет, потому что не нужно подсчитывать сумму, просто идет считывание. И смотрите, считывание происходит со скоростью 209 Мбайт в секунду.
И один одиночный SSD считывает примерно с такой же скоростью. Тут речь идет о дисках SSD. Далее, важность производительности жестких дисков.
Подумайте о параллельной работе многих людей. При этом очень сильно все упирается в производительность жестких дисков. Не стоит ее недооценивать.
Далее, давайте сами создадим RAID и увидим, как им управлять. Внимание, я исхожу из того факта, что мой диск, который основан на RAID, Совершенно пуст.
В My Computer это диск D. Всё его место совершенно свободно. На нём нет никаких файлов, поэтому совершенно ничего не случится, если я сотру этот RAID, уберу его и сделаю заново.
Вот так. Как вы видите здесь, у нас всё выделено физически. А теперь как же это всё выглядит логически?
В самом компьютере всё выглядит просто как единый диск. Windows понятия не имеет, что за всем этим кроется контроллер RAID. Он думает, что просто есть один жесткий диск в 3 терабайта.
Он даже не представляет себе, что за этим жестким диском кроется 4 физических жестких диска, которые работают через RAID 10.
Так же, как и за диском C, который размером 1 терабайт, он думает, что это 1 жесткий диск. Так думает программа Windows, как операционная система.
Она не знает, что диск C 1 терабайт. Это RAID 5. Это не имеет дела к ее операционной системе. Windows отсылает команды к этому контроллеру RAID, а контроллер уже передает их своим жестким дискам в соответствии с тем, как его настроили.