Возможно ли иметь бесхозные жесткие ссылки?
Я не уверен, возможно ли вообще иметь жесткую ссылку-сироту. Позвольте мне объяснить, почему я спрашиваю. Потерпите меня.
Моя настройка
я использую rsync
синхронизировать мой файловый сервер с моим резервным сервером. Я использую --link-dest
Опция rsync для создания схемы дед-отец-сын (каждая резервная копия будет выглядеть как полная резервная копия с использованием жестких ссылок). Пример: http://www.mikerubel.org/computers/rsync_snapshots/
Сервер резервного копирования будет работать под управлением Ubuntu с SnapRaid. SnapRaid будет настроен с 1 диском четности.
SnapRaid утверждает на своей домашней странице, что:
Если число сбойных дисков слишком велико, чтобы можно было восстановить данные, вы потеряете данные только на сбойных дисках. Все данные на других дисках в безопасности.
В моем случае, если выходит из строя 1 диск и SnapRaid не может восстановить систему, большая часть моих данных все еще должна быть там на оставшихся дисках.
Предположения
Здесь я начинаю заблудиться. Я пока не уверен, как проверить эти предположения. Пожалуйста, дайте мне знать, если эти предположения являются ложными.
# 1
Теоретически, я должен иметь возможность извлечь один диск из моей машины с Ubuntu SnapRaid, подключить его к другому компьютеру и прочитать его содержимое.
# 2
Когда я подключаю один диск, я ожидаю увидеть все жесткие ссылки. Однако, поскольку я использую SnapRaid, иноды могут фактически располагаться на жестком диске, отличном от жестких ссылок.
Вопрос
Если мои предположения, изложенные выше, верны, то при удалении диска из конфигурации SnapRaid существует вероятность появления потерянных жестких ссылок.
Что происходит с этими осиротевшими жесткими ссылками?
Это вообще возможно?
3 ответа
Насколько я понимаю, SnapRaid хранит информацию о четности на уровне файлов и не связывается с устройствами более низкого уровня.
Если так, то это должно быть совершенно не связано с тем, как работает хард-линк. По сути, если вы потеряете слишком много файлов для восстановления с помощью информации о четности, у вас останутся нечитаемые файлы (очень похоже на использование одного диска с поврежденными секторами).
Вернуться к первоначальному вопросу: нет, жесткие ссылки не могут быть осиротевшими. Однако у вас могут быть жесткие ссылки, указывающие на действительный, но нечитаемый индекс
Я думаю, что вам, вероятно, нужно посмотреть, как работает SnapRaid, но жесткие ссылки не могут связывать разделы, не говоря уже о дисках, поэтому вы не увидите "сирот" из этого источника.
Жесткие ссылки не работают через тома. Следовательно, если том исчезает, по определению не может быть жесткой ссылки-сироты. Жесткие ссылки - это две записи каталога, которые указывают на одни и те же блоки данных (технически... указывают на один и тот же индекс, который указывает на блоки данных). Поскольку каталог должен находиться на том же томе, что и его блоки, вы не можете получить сирот.
к счастью rsync
достаточно умен, чтобы сделать копию, если окажется, что не может создать жесткую ссылку. Он будет использовать вдвое больше дискового пространства, но без дополнительной пропускной способности сети. На самом деле, с "схемой дедушка-отец-сын", которую вы используете, rsync
будет использовать алгоритм сравнения для экономии пропускной способности сети.
Разумеется, пропускная способность ввода-вывода жесткого диска будет увеличиваться каждый раз, когда файл дублируется на томах, потому что его необходимо прочитать с одного тома и записать на другом. Это может оказать значительное влияние, если отец и сын (или дедушка и отец) находятся на разных томах. Это удвоит или утроит объем выполняемого дискового ввода-вывода, так как каждый файл не будет жестким, и его нужно будет скопировать. Наихудший случай был бы, если бы дед, отец и сын были на разных томах: по существу никаких жестких ссылок не будет! (кроме тех, которые находятся в резервном наборе).