Блеск: отправка разных запросов на запись в разные OST
У меня есть типичный сценарий, когда параллельно можно писать запросы, и каждый файл имеет размер в несколько сотен ГБ.
Моя тестовая система, файловая система Luster, имеет 4 OST (по 3 ТБ каждая) и 1 MDS.
Я практически заметил, что при отключенном чередовании Luster записывает все файлы в один OST, если он не заполнен.
Можно ли настроить Luster таким образом, чтобы при возникновении параллельных или перекрывающихся запросов записи MDS автоматически выбирал цель, которая в данный момент не занята?
Я заинтригован тем, почему Luster не делает этого по умолчанию, или, может быть, потому что я что-то упустил?
2 ответа
Если у вас обычно есть большие файлы в вашей файловой системе (например,> 32 МБ), вы должны соответствующим образом установить количество полос по умолчанию для файловой системы. Вы можете указать чередование по умолчанию для каждого каталога, для каждой файловой системы (в зависимости от ваших разрешений и того, как вы используете) или когда создается отдельный файл.
использование lfs setstripe -c N /path/to/directory
установить количество полос по умолчанию N
на directory
, что повлияет на все новые файлы только в этом каталоге. Если у вас есть только ограниченное количество OST (4 в вашем случае), или все ваши файлы огромны (в диапазоне ГБ в вашем случае), тогда вы можете использовать -c -1
, что означает "чередование всех OST", а не явное число чередований.
использование lfs setstripe -c N /mnt/lustre
(или какой бы ни была точка монтирования вашей файловой системы), чтобы установить счетчик полос по умолчанию для новых файлов во всей файловой системе (если иное не указано в макете по умолчанию на уровне каталогов или явно при создании файла).
В Luster 2.10 и более поздних версиях вы можете использовать составные макеты файлов, чтобы число полос увеличивалось по мере увеличения файлов, например:
lfs setstripe -E64M -c 1 -E4G -c 4 -E-1 -S 4M -c -1
это означает, что для первого 64MB
файла используйте только 1 полосу, для 64MB-4GB
часть файла использовать 4 полосы, и за 4GB
используйте размер чередования 4 МБ и чередуйте его по всем OST (в вашем случае это тоже 4, но в некоторых файловых системах это могут быть сотни OST).
Да, если вы включите чередование, то Luster будет распределять записи в отдельный файл по большому количеству OST, сколько вы хотите (в зависимости от того, сколько полос вы установили). Поскольку вы отключили чередование, все операции ввода-вывода для файла будут ограничены одним OST.
Если я неправильно понял, и вместо этого все, что вы видите, - это все операции ввода-вывода для всех файлов, отправляемых в один и тот же OST, тогда вы, вероятно, случайно установили для параметра "index" значение, отличное от -1. Эта опция переопределит настройку по умолчанию, которая позволит MDS сбалансировать создание файлов по всем OST.