Ссылаются ли снимки родительской файловой системы на данные дочерних наборов данных или только на свои собственные данные?

На данные ссылается столько снимков, сколько вы сделаете, и они будут удалены с диска, только если вы удалите все снимки, которые ссылались на эти данные, а также данные с работающего тома, это справедливо как для btrfs, так и для ZFS.

Например, в btrfs, если я создам ~/mifyle.txt, а затем сделаю снимок @home, мой файл не будет удален с диска, пока я не удалю этот снимок и ~/myfile.txt, то же самое происходит и с ZFS.

Но что если я делаю моментальные снимки с @ и @home? Будут ли ссылки на ~/myfile.txt в снимках @ и @home или только в снимках @home?

И ведет ли себя ZFS по-другому? Если я создам файл rpool/home/myfile.txt, где rpool - родительский, а rpool/home - дочерний набор данных, затем сделаю снимки для rpool и rpool/home, будет ли myfile. txt будет упоминаться в обоих снимках наборов данных или только в снимке дочернего набора данных?

0
задан 6 June 2020 в 17:53

1 ответ

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

Снимки, сделанные для rpool, влияют только на набор данных rpool. Снимки, сделанные в rpool/home, влияют только на набор данных home.

Помните, что home — это не просто каталог в rpool, это файловая система, которая, как оказалось, монтируется в путь /mnt/rpool/home.

Если вы сохраните файлы в home наборе данных, а затем уничтожите home набор данных, все файлы и папки в домашнем наборе данных исчезнут: в том числе сохраненные в его снимки! Такие файлы никогда не сохранялись в наборе данных rpool во время монтирования home в /mnt/rpool/home.

Это верно и для моментальных снимков. Снимки для rpool/home не создают снимки для rpool; создаются только домашние снимки.

Единственная причина, по которой вас может заинтересовать rpool, влияющая на rpool/home, — это когда вы используете рекурсивные действия над rpool, где любое такое рекурсивное действие повлияет на rpool и все его дочерние элементы,, включая rpool/home.

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

Эта команда создаст следующие снимки. -r "рекурсивный":

zfs snap -r rpool@important
  1. rpool@important
  2. rpool/home@important
  3. rpool/media@important
  4. rpool/isos@important
  5. rpool/isos/stable@important
  6. rpool/isos/testing@important

Вы можете удалить все снимки с помощью следующей команды. Обратите внимание на параметр -r:

zfs destroy -r rpool@important

Если вы предпочитаете избирательность, вы можете уничтожить только определенные снимки, не нанося вреда другим.Обратите внимание, что параметр -r не используется:

zfs destroy rpool@important
zfs destroy rpool/media@important

Теперь у вас останутся только сохраненные снимки:

  1. rpool/home@important
  2. rpool/isos@important
  3. rpool/isos/stable@ важный
  4. rpool/isos/testing@important
2
ответ дан 30 November 2020 в 23:26

Другие вопросы по тегам:

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