Я собираюсь начать режим резервного копирования на магнитную ленту и хочу обеспечить достаточный поток данных на ленточный накопитель (поддерживаются целевые более 120 МБ), но не могу понять, как это сделать без выделенного исходного накопителя / массива, который простаивает, когда не записывает кассеты. В документации для нашего конкретного накопителя не упоминается минимальная пропускная способность.
Среда
Если исходный массив имеет значительные операции чтения / записи (из запланированных резервных копий) во время записи на ленту, пропускная способность ленты резко упадет, даже если временно. Поэтому некоторые вопросы касались пропускной способности записи исходного массива / ленты:
Обновление:
Я решил минимизировать налоги с помощью одного потока ввода-вывода через задание архивации 600 ГБ, считывающее из массива со скоростью около 30 МБ / с во время записи tar на ленту с 4-х дискового RAID 6 с бытовым SATA. Лента определенно замедлилась до ползания из-за прослушивания диска, но, похоже, НЕ закончились данные или чистка обуви. Это говорит мне НЕ ожидать, что во время полного запланированного резервного копирования для конфигурации нашего оборудования все будет в порядке, но он может справиться с менее сложными задачами ввода-вывода при записи на ленту.
Следует отметить, что LOT4 ленты должны выполнить 56 сквозных проходов, чтобы эффективно записывать блоки размером ~ 14 ГБ, прежде чем они останутся на несколько секунд, чтобы замедлиться, а затем «уйти» в другом направлении. Думаю, это помогло сохранить накопитель «сытым» с данными при более низкой пропускной способности, поскольку у меня есть упреждающее чтение и асинхронная запись , установленное в stinit.def.
Еще одно примечание - это чтение "dd if = / dev / st0 of = / dev / null "только результат 107 МБ / с. Я предполагаю, что это реальная максимальная эффективная пропускная способность этого диска, а НЕ 120 МБ / с. Накопитель в настоящее время находится на выделенном SAS PCIe HBA, и другие карты PCIe не установлены.
Тем временем я установил RAID0 емкостью 1 ТБ в качестве буфера Disk2Tape и мне пришлось добавить еще один диск на сервер, чтобы это стало возможным.
] Я все равно хотел бы найти что-то вроде QOS для ленточного накопителя и установить высший приоритет записи на ленту, чтобы мы могли упростить наши массивы и сократить паразитные затраты на аппаратное обеспечение , но пока что я ' Я не вижу способа НЕ обойтись без выделенного буфера disk2tape, если я хочу обеспечить непрерывную запись независимо от того, какие запланированные задания попадают в массив.
В руководстве , которое я нашел , перечислены переменные скорости от 30,5 до 120 МБ / с с шагом ~ 7 МБ / с.
Кроме того, в накопителях LTO используются диски разумного размера. буферы для выравнивания потока данных и обеспечения индикатора для регулировки скорости, поэтому, если скорость чтения сильно не меняется или не очень низкая, обратное соединение должно быть минимальным.
С данными в довольно приличном массиве и больших файлах 120 МБ / с не следует Это даже не будет большой проблемой (если только файловая система не сильно фрагментирована). В нашем ленточном буфере используются два (медленных) накопителя емкостью 4 ТБ в массиве RAID 0, которые могут выдерживать около 270 МБ / с, но мы не записываем в буфер, пока записываются ленты.
mbuffer - это небольшой и удобный инструмент, который может помочь вам поддерживать постоянный поток данных на ленточный накопитель
. Он доступен в большинстве дистрибутивов Linux.
mbuffer - буферизует операции ввода-вывода и отображает пропускную способность. Он многопоточный, поддерживает сетевые соединения и предлагает больше возможностей, чем стандартный буфер.
Пример использования многопоточного сжатия на лету:
tar cvf - / backupdir | lbzip2 | mbuffer -m 4G -L -P 80> / dev / st0
mbuffer объяснение параметров:
-m 4
Размер буфера памяти 4 ГБ. Если необходимо или доступно, используйте буфер большего размера. -L
заблокирован в памяти (необязательно) -P 80
начать запись на ленту после заполнения 80% буфера.
Нет необходимости ставить 100, поскольку ленточному накопителю потребуется некоторое время, чтобы начать запись, и к тому времени он, вероятно, заполнится до 100%. В этом примере, как только буфер заполняется до 80% емкости, он начинает отправлять данные на ленту, а mbuffer продолжает получать поток архива.
Если процесс архивирования идет медленно и mbuffer не получил данные достаточно быстро, чтобы не отставать от ленточного накопителя, он прекратит отправку данных на ленточный накопитель, когда они достигнут 0%. Как только буфер памяти будет заполнен до 80%, он начнет отправку данных на ленточный накопитель, и запись продолжится на полной скорости.
Таким образом, «чистота обуви» ленты сводится к минимуму и Ленточный накопитель всегда будет получать данные с максимальной скоростью, необходимой для поддержки потока.
Вы также можете использовать mbuffer в обратном направлении, чтобы читать резервные данные с ленточного накопителя и сохранять поток на более медленный носитель или отправлять его через сеть.