Я пытаюсь создать одноразовый снимок 5,5 ТБ данных на 3 внешних диска по 2 ТБ. Данные находятся в разделе XFS, поэтому логичным вариантом, казалось, был xfsdump, поскольку он может охватывать несколько устройств. В качестве теста я создал несколько небольших разделов на одном из дисков, поэтому я могу заставить его достичь конца диска за минуты, а не часы. Внешний диск содержит два раздела, /dev/sde1
и /dev/sde2
, оба размером 256 МБ.
Я использую эту команду:
xfsdump -o -l0 -s daily.0/jones -f /dev/sde2 -p 10 /snaps
Мне предлагается ввести метки дампа и носителя, и начнется резервное копирование. Примерно через 30 секунд я получаю следующие сообщения:
xfsdump: ending media file xfsdump: media file size 750000128 bytes xfsdump: dump size (non-dir files) : 728189552 bytes xfsdump: NOTE: dump interrupted: 27 seconds elapsed: may resume later using -R option xfsdump: Dump Status: INTERRUPT
Это в значительной степени то, что я надеялся увидеть, так как он достиг конца доступного места на /dev/sde2
.
Бег xfsdump -I
тоже неплохо выглядит:
# xfsdump -I file system 0: fs id: 767465ce-3031-4672-8341-dfb135d8a463 session 0: mount point: broze:/snaps device: broze:/dev/mapper/vg0-snaps time: Tue Nov 3 14:23:57 2009 session label: "dump1" session id: 531a3622-84af-4767-a54b-a1b11a962dcb level: 0 resumed: NO subtree: YES streams: 1 stream 0: pathname: /dev/sde2 start: ino 535 offset 0 end: ino 1260 offset 0 interrupted: YES media files: 1 media file 0: mfile index: 0 mfile type: data mfile size: 750000128 mfile start: ino 535 offset 0 mfile end: ino 1260 offset 0 media label: "drive1" media id: 721c35ba-e844-47f8-8692-0d3122d88093 xfsdump: Dump Status: SUCCESS
Кажется, это означает, что я смогу возобновить резервное копирование. Однако, если я запустил xfsdump с -R
флаг и укажите новое устройство для резервного копирования, вот что я получаю:
# xfsdump -R -o -l0 -s daily.0/jones -f /dev/sde1 -p 10 /snaps xfsdump: using file dump (drive_simple) strategy xfsdump: version 2.2.45 (dump format 3.0) - Running single-threaded ============================= dump label dialog ============================== please enter label for this dump session (timeout in 300 sec) -> dump1.contd session label entered: "dump1.contd" --------------------------------- end dialog --------------------------------- xfsdump: ERROR: resume (-R) option inappropriate: no interrupted level 0 dump to resume xfsdump: Dump Status: ERROR
В /dev/sde2
Раздел действительно содержит действительную, если не полную, резервную копию, поскольку я могу восстановить из нее с помощью команды xfsrestore.
Есть идеи, как заставить xfsdump охватить несколько устройств? Есть ли лучший способ сделать это, не пытаясь вручную разбить данные на блоки по 2 ТБ?
Спасибо!
Я протестировал в основном тот же вариант использования, который вы использовали здесь, за исключением сброса в файл, и он работал без проблем. Я подозреваю, что у вас все в порядке, но что-то еще не так. Это, вероятно, не лучший форум для этого, но я обнаружил, что разработчики из списка рассылки XFS и канала IRC #xfs в сети Freenode чрезвычайно полезны.
После долгих споров я не смог заставить работать решение xfsdump. Итак, я сделал то, что должен был сделать в первую очередь: tar.
tar -cvM -L 1953383400 -f /mnt/backup1.tar .
Резервная копия файловой системы сохраняется в архиве на диске, смонтированном в /mnt/
. Добавление -M
flag сообщает tar, что он будет создавать многотомный архив. В -L
flag сообщает ему размер каждого тома. Когда резервная копия достигает этого размера, tar приостанавливается и вежливо запрашивает новый том:
Prepare volume #2 for `backup1.tar' and hit return:
Удары ?
дает меню опций:
Prepare volume #2 for `backup1.tar' and hit return: ? n name Give a new file name for the next (and subsequent) volume(s) q Abort tar y or newline Continue operation ! Spawn a subshell ? Print this list Prepare volume #2 for `backup1.tar' and hit return:
Итак, я отключаю внешний диск, присоединяю следующий, монтирую его, ввожу n backup2.tar
по запросу, и резервное копирование продолжится.
Старый добрый деготь.
Это сложно. Во-первых, я не думаю, что рекомендовал бы делать это, если это вообще возможно. Во-вторых, вероятно, лучше создавать резервные копии только данных частями, а не файловой системы. Если, однако, вы должны создать резервную копию как одну непрерывную файловую систему, я бы предположил, что вы могли бы создать том lvm2, охватывающий ваши три диска, как своего рода виртуальный контейнер, а затем в значительной степени dd / xfsdump все это в него. Не уверен, что это разумный подход, но он должен работать. :)
Удачи