Тестирование флеш СХД. Влияние файловых систем
В ходе тестирований производительности ведущих флеш-систем мы, в какой то момент, задались вопросами: Каково же влияние файловой системы на производительность реальной СХД? Насколько оно существенно и от чего зависит? Известно, что файловая система является инфраструктурным программным слоем, реализуемым на уровне ядра ОС (kernel space) или, что реже — на пользовательском уровне (user space). Будучи промежуточным слоем между прикладным/системным ПО и дисковым пространством, файловая система должна вносить свою паразитную нагрузку, влияющую на показатели производительности системы. Следовательно, при расчетах реальной производительности СХД следует учитывать зависимость фиксируемых параметров от реализации файловой системы и ПО, использующего данную файловую систему.
Программа тестирования.С целью исследования накладных расходов создаваемых различными файловыми системами (EXT4, VXFS, CFS) на производительность СХД был создан стенд подробно описанный в статье Тестирование флеш СХД. IBM RamSan FlashSystem 820.Тесты выполнялись посредством создания синтетической нагрузки программой fio на блоковое устройство (block device), представляющее собой логический том типа stripe, 8 column, stripe unit size=1MiB, созданный с использованием Veritas Volume Manager из 8-ми LUN, презентованных с тестируемой системы. По отношению к файловой системе выполнялись тесты эквивалентные описанным в статье Тестирование флеш СХД. IBM RamSan FlashSystem 820.Затем, строились графики, отображающие влияние файловой системы на производительность СХД (разница производительности в % от полученной при тестировании блочного устройства) и делались выводы о степени влияния файловой системы на производительность СХД. Рисунок 1. Структурная схема тестового стенда №1. (кликабельна) Тесты производительности дискового массива при разных типах нагрузки, исполняемые на уровне файловой системы ext4. Тип файловой систем ext4.Блок файловой системы 4K.Файловая система смонтирована с опциями монтирования noatime, nobarrier.На созданной файловой системе формируется 16 файлов одинакового объема на весь объем файловой системы. Имена всех сформированных файлов приводятся в качестве значения параметра filename программы fio (при запуске тестов генерируемая нагрузка будет равномерно распределяться между всеми созданными файлами).Тесты производительности дискового массива при разных типах нагрузки, исполняемые на уровне файловой системы vxfs. Тип файловой систем vxfs.Блок файловой системы 8K.Файловая система смонтирована с опциями монтирования cio, nodatainlog, noatime, convosync=unbufferedДополнительные параметры настройки файловой системы, реализуемые через команду vxtunefs следующие: initial_extent_size=2048; read_ahead=0. Полученные графики накладываются на результаты предыдущих тестирований и делается вывод о степени влияния файловой системы на производительность СХД.Тесты производительности дискового массива при разных типах нагрузки, генерируемой двумя серверами на кластерную файловую систему Symantec CFS. На данном этапе к стенду добавляется ещё один тестовый сервер. Рисунок 2. Структурная схема тестового стенда №2 На добавленный сервер устанавливается ПО, эквивалентное установленному на первый сервер, делаются такие же настройки по оптимизации. Все 8 LUN с СХД презентуются обоим серверам. На них средствами Symantec Volume Manager создается кластерный том striped, 8 columns, unit size=1024KB. На этом томе создается файловая система CFS, которая монтируется с опциями cio, nodatainlog, noatime, nomtime, convosync=unbuffered на оба сервера. На файловой системе создаются 16 файлов, к которым имеют доступ оба сервера. На серверах одновременно запускаются тесты, аналогичные предыдущим. Сперва, на все множество из созданных 16 файлов. Затем, с каждого сервера на свое, не пересекающимся с другим, подмножество из 8 файлов. По результатам строятся графики разницы полученных показателей и делаются выводы о степени влияния кластерной файловой системы Symantec CFS на производительность.Результаты тестирования Графики производительности при тестировании файловых систем ext4 и vxfs по отношению к блочному устройству. (Все картинки кликабельны) Выводы сравнения EXT4 и VXFS Файловая система оказывает значимое влияние на производительность СХД, вплоть до её 50%-го падения. При возрастании нагрузки на СХД влияние файловой системы на производительность, в большинстве случаев, снижается (дисковый массив выходит в насыщение, и накладные расходы на файловые системы становятся не заметными на фоне значимого возрастания латентности на уровне дискового массива). Файловая система vxfs демонстрирует прирост производительности на операции асинхронной записи и чтении при низкой нагрузке на дисковый массив. Вероятно, обусловленный использованием опции монтирования convosync=unbuffered, подразумевающей прямую передачу данных между буфером в адресном пространстве пользователя и диском (без копирования данных в буфер ядра операционной системы). Обозначенный эффект не наблюдается на файловой системе ext4. Показатели производительность файловой системы ext4 хуже в сравнении с блоковым устройством при всех измерениях. При нахождении СХД в режиме насыщения файловая система vxfs показывает сравнимые показатели с файловой системой ext4. Как правило, конфигурацию СХД выбирают таким образом, что бы она не находилась в режиме насыщения в штатном режиме работы, поэтому полученная более низкая производительность vxfs в сравнении с ext4 не является значимым показателем качества файловой системы. Существенные колебания относительной производительности файловых систем при синхронном вводе-выводе, вероятно, обусловлены отсутствием оптимизации драйверов файловых систем к низко-латентным SSD дискам и наличием дополнительных операций ввода-вывода по изменению метаданных файловых систем. Не исключено, что дополнительные настройки файловых систем позволят снизить эти колебания. Тесты производительности дискового массива при разных типах нагрузки, генерируемой двумя серверами на кластерную файловую систему Symantec CFS. Графики относительной производительность, полученной при различных тестах (Все картинки кликабельны) Выводы сравнения CFS и VXFS Производительность при нагрузке с обоих серверов на одни и те же 16 файлов одновременно не отличается от производительности, полученной при нагрузке каждого сервера на свои 8 файлов. (небольшие скачки (увеличение производительности на 20% при чтении блоками 4–8K при нагрузке на одно множество файлов, скорее всего, обусловлены фоновыми процессами на самой СХД, т.к. тесты выполнялись подряд). Наблюдения за загрузкой Ethernet соединений между серверами, используемыми для интерконнекта, показали отсутствие значимой нагрузки, что является преимуществом CFS при работе нескольких серверов с одним множеством файлов Примерно одинаковая производительность при записи, в обоих случаях. За исключением маленьких блоков (4–8K) где результаты CFS в 2–3 раза выше, чем у VXFS. На смешанном в/в CFS на 10–20% лучше, чем VXFS. Кластерная файловая система CFS не оказывает негативного влияния на производительность. В некоторых случаях получена даже большая производительность. Это может быть вызвано лучшим распараллеливанием нагрузки с двух серверов, чем с одного.