Блеск: отправка разных запросов на запись в разные 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.

Другие вопросы по тегам