Мне нужно настроить небольшой деди для нескольких VPS. Очевидно, что чем больше IO, тем лучше. Что бы вы выбрали с учетом этих условий? 2 диска SAS 15k в Raid1 или 4 диска SATA 7.2k в raid 10?
Изменился бы ответ, если бы я использовал программный или аппаратный рейд?
2 x 15k, каждый раз, большинство 7.2 не предназначены для работы в течение всего дня.
Я ответил на эти вопросы задом наперед, потому что, надеюсь, это имеет больше смысла.
Изменился бы ответ, если бы я использовал программный или аппаратный рейд?
Во-первых, не используйте fakeraid, если у вас есть опция для Linux. Это бесполезно. Он вообще не балансирует чтение / запись, выбирая чтение с ОДНОГО из дисков. Не делай этого.
Что касается аппаратного / программного рейда, мой опыт показал, что программный (mdadm) RAID действительно очень хорош там, где количество дисков не превышает шести. Для этого есть несколько причин.
Аппаратный RAID действительно зависит от карты, которую вы получаете, но более дорогие карты отлично подходят, когда у вас очень много дисков, и предлагают хороший мониторинг и оповещения о проблемах. Они также предлагают горячую замену, которая может быть очень полезной, но обычно более дорогие серверы предлагают только эту возможность.
что бы вы выбрали? 2 диска SAS 15k в Raid1 или 4 диска SATA 7.2k в raid 10?
Профилирование ввода-вывода может быть очень трудно предсказать, особенно для виртуальных машин, большая часть производительности зависит от того, какой будет фактическая индивидуальность ввода-вывода (случайное чтение / запись или последовательное чтение / запись).
Лично я бы выбрал диски SAS, у них обычно более быстрое время поиска (вероятно, достаточно, чтобы компенсировать тот факт, что у вас есть четыре диска в другой конфигурации) и более быстрое последовательное чтение. Что еще более важно, они обычно проектируются с более высоким средним временем наработки до отказа (хотя, как всегда, в конечном итоге это окупается, но если вам нужна рабочая лошадка, диски SAS являются более безопасным вариантом.
SATA, с другой стороны, на mdadm, например, могут немного лучше работать при произвольном чтении ввода-вывода из-за того, как mdadm выбирает устройство для чтения (он предпочитает собирать блоки с диска, который находится ближе всего к этому сектору). Удвоив количество дисков, вы можете обнаружить, что он работает немного лучше в поисковых системах.
Наиболее типичные рабочие нагрузки будут на 70% последовательными, 30% случайными. Операционная система активно избегает поиска, где это возможно, переупорядочивая записи в ближайший возможный сектор (это называется NCQ в SATA и TCQ в SCSI), что также пытается облегчить эту проблему.
Программный рейд - ну, mdadm для того, что я имею в виду - по крайней мере будет удовлетворительным, если он предназначен только для двух дисков, и, как уже упоминалось, со специализированными файловыми системами, которые скоро появятся, есть еще больше причин выбрать программный подход.
В целом, я бы выбрал вариант SAS для программного рейда, он в целом более безопасен, а для большинства рабочих нагрузок даже удвоение количества дисков SATA вряд ли обеспечит лучшую производительность.
Предполагая, что стоимость не является проблемой, я бы выбрал рейд программного обеспечения md linux, raid10, f2 с 2 дисками SAS. Это дает вам производительность потокового чтения RAID0 и что-то приближающееся к производительности потоковой записи RAID0. Он падает перед лицом небольших случайных записей, потому что каждая записанная полоса означает запись в первую и последнюю половину каждого диска.
Любое аппаратное решение RAID10, которое работало бы таким образом (поддельный RAID Intel называет это матричным рейдом), тоже может подойти, но я не знаю ни одного.
Если стоимость является проблемой, вам, вероятно, лучше использовать диски SATA и несколько запасных частей. Это предполагает, что вы готовы и можете быстро их заменить. Я неравнодушен к программному RAID Linux md, если вы не можете его использовать по какой-то причине.