контролировать вывод команд в отдельных окнах внутри терминала [дубликат]

Ну, это действительно зависит от , насколько пул доступен только для чтения. И нет, это не шутка.

Во-первых, немного терминологии: в ZFS вы импортируете пул и при желании монтируете (любые) файловые системы в нем. Вы можете импортировать пул без монтирования каких-либо файловых систем, передав -N в zpool import , а затем смонтируйте любые нужные файловые системы, используя zfs mount . (Это вполне допустимый сценарий, если, например, вы хотите получить доступ только к одной файловой системе из многих, или если вы хотите сделать что-то похожее на автономную очистку пула.)

ZFS не работает. большой поклонник доступа только для чтения.Например, если ZFS обнаруживает ошибку, которую можно исправить, я считаю, что она исправит ошибку и запишет восстановленные данные на диск , даже если вы импортировали пул как доступный только для чтения. Насколько я понимаю, в Parlace ZFS «только для чтения» применяется только к видимому пользователю состоянию пула и его наборов данных. Если, с другой стороны, вы сделаете двоичную копию диска в файл (или набор файлов), сделаете эти файлы действительно доступными только для чтения и попытаетесь импортировать пул оттуда, ZFS не сможет импортировать бассейн вообще, как ни старайся. Если вы сделаете файлы доступными для записи, все будет нормально. (На самом деле я пробовал это всего несколько недель назад, хотя и использовал zvol, и ZFS категорически отказалась импортировать пул. Когда я установил zvol на чтение / запись, а не только на чтение, пул импортировался нормально .) Другие файловые системы, такие как (в Linux) ext4 и, возможно, другие, несколько изящно справляются с этой ситуацией, но ZFS отказывается.

Если вам не повезло, и не имеет ОЗУ ECC , установленного в системе, в которую вы импортируете пул, то попытка ZFS исправить любые обнаруженные ошибки может на самом деле усугубить ситуацию. , хотя мнения расходятся относительно того, действительно ли это реальный риск на практике. Лично я придерживаюсь мнения, что любые данные, о которых я достаточно забочусь, чтобы защитить с помощью ZFS, моментальных снимков, избыточности на уровне хранилища и резервных копий и еще много чего , заслуживают защиты, предлагаемой ECC RAM, но на многих ПК нет ОЗУ ECC.

Таким образом, вы можете импортировать пул в режиме «только для чтения» с определенным альтернативным корнем, чтобы он не наступал на чьи-либо пальцы, но вы должны знать, что это не обязательно на самом деле только для чтения в криминалистическом смысле. (Однако это гарантирует, что вы случайно ничего не измените в пуле.) Чтобы выполнить импорт только для чтения, предполагая, что пул называется tank , а узлы устройства - / доступны в / dev , вы можете использовать такую ​​команду:

# zpool import tank -d /dev -o readonly=on -R /mnt/someplace

Это будет искать в / dev все, что содержит пул ZFS с именем tank ], импортируйте его, временно установив для свойства пула readonly значение на (что означает, что все записи, инициированные пользователем, будут отклонены) и временно установив его свойство altroot по адресу / mnt / someplace . (Эти значения свойств являются «временными» в том смысле, что они не сохраняются на диске (ах) как текущие значения свойств, поэтому, если вы экспортируете и повторно импортируете пул без них, значения вернутся к нормальным. Они могут возможно, будет записана в историю пула, которую после импорта пула вы можете просмотреть с помощью zpool history tank , если хотите.) После импорта пула вы увидите свои файлы в / mnt / someplace и имеют к ним обычный доступ только для чтения, включая любые моментальные снимки, которые уже сделаны для наборов данных в пуле.

Учитывая ваш пример, я подозреваю, что вы могли бы использовать что-то вроде:

# zpool import zroot02 -d /dev -o readonly=on -R /mnt/my-fun-mountpoint

Когда вы закончите, не забудьте чисто экспортировать пул:

# zpool export tank

или, возможно,

# zpool export zroot02

Это отключит все файловые системы и другие наборы данных в пуле, очистить все буферы (в той степени, в которой это необходимо в первую очередь), пометить пул как не импортированный на всех составляющих устройствах,и выполнять любые другие необходимые служебные задачи, чтобы гарантировать, что пул можно безопасно переместить в другую систему и импортировать туда позже.

2
01.04.2015, 18:12
0 ответов

Теги

Похожие вопросы