Назад | Перейти на главную страницу

Возможны ли потерянные жесткие ссылки?

Я не уверен, возможно ли вообще иметь потерянную жесткую ссылку. Позвольте мне объяснить, почему я спрашиваю. Потерпите меня.

Моя установка

Я использую rsync для синхронизации моего файлового сервера с моим резервным сервером. Я использую --link-dest Параметр rsync для создания схемы дед-отец-сын (каждая резервная копия будет выглядеть как полная с использованием жестких ссылок). Пример: http://www.mikerubel.org/computers/rsync_snapshots/

Сервер резервного копирования будет работать под управлением Ubuntu с SnapRaid. SnapRaid будет настроен с 1 диском четности.

SnapRaid утверждает на своей домашней странице, что:

Если неисправных дисков слишком много для восстановления, вы потеряете данные только на неисправных дисках. Все данные на других дисках в безопасности.

В моем случае, если 1 диск выходит из строя и SnapRaid не может восстановить систему, большая часть моих данных все еще должна быть на оставшихся дисках.

Предположения

Здесь я начинаю теряться. Я пока не знаю, как проверить эти предположения. Сообщите мне, ложны ли эти предположения.

# 1

Теоретически я смогу вытащить один диск из моей машины Ubuntu SnapRaid, подключить его к другому компьютеру и прочитать его содержимое.

# 2

Когда я подключаю один диск, я ожидаю увидеть все жесткие ссылки. Однако, поскольку я использую SnapRaid, inodes могут фактически располагаться на жестком диске, отличном от жестких ссылок.

Вопрос

Если мои предположения, приведенные выше, верны, то при удалении диска из конфигурации SnapRaid существует вероятность потери жестких ссылок.

Что происходит с этими потерянными жесткими ссылками?

Это вообще возможно?

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

К счастью rsync достаточно умен, чтобы сделать копию, если окажется в ситуации, когда не может создать жесткую ссылку. Он будет использовать вдвое больше дискового пространства, но без дополнительной пропускной способности сети. Фактически, по схеме «дед-отец-сын», которую вы используете, rsync будет использовать алгоритм сравнения для экономии пропускной способности сети.

Пропускная способность ввода-вывода жесткого диска, конечно, будет увеличиваться каждый раз, когда файл дублируется на томах, потому что он должен быть прочитан с одного тома и записан на другой. Это может иметь большое влияние, если отец и сын (или дедушка и отец) работают в разных томах. Это удвоит или утроит объем выполняемых дисковых операций ввода-вывода, поскольку каждый файл не будет жестко привязан, и его нужно будет скопировать. В худшем случае, если дедушка, отец и сын находятся на разных томах: по сути, жестких ссылок не будет! (кроме тех, что входят в резервный набор).

Я думаю, вам, вероятно, нужно посмотреть, как работает SnapRaid, но жесткие ссылки не могут связываться между разделами, не говоря уже о дисках, поэтому вы не увидите никаких «сирот» из этого источника.

Насколько я понимаю, SnapRaid хранит информацию о четности на уровне файлов и не взаимодействует с устройствами более низкого уровня блоков.

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

Вернемся к исходному вопросу: нет, потерянные жесткие ссылки невозможно. Однако у вас могут быть жесткие ссылки, указывающие на действительный но нечитаемый индекс