1

Если установлен параметр sync=disabled , я понимаю, что ZIL не записывается на диск, а изменения записываются непосредственно на диск. Помимо возможных противоречивых данных с точки зрения приложения, особенно в сетевых ситуациях, когда данные, которые предположительно фиксируются, не записываются и, следовательно, не записываются после того, как хранилище возвращается в оперативный режим, существуют ли другие риски повреждения данных? Более конкретно, если у меня есть снимок, который я ранее сделал из данных, рискуют ли эти данные быть поврежденными?

Например, предположим, что у меня есть некоторые киоск-машины, работающие с тома iSCSI, который я ежедневно восстанавливаю до снимка. Предположим, кроме того, что я отключил синхронизацию, и сервер зависает во время записи (возможно, обновляя некоторые структуры файловой системы). Гарантируется ли, что при запуске операции zfs rollback снимок, к которому я возвращаюсь, все еще непротиворечив и что любые другие тома в том же пуле (скажем, с sync=always) не удаляются?

Если это имеет значение, я использую Solaris 11.3 или 11.4.

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .