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

xfsdump: охват нескольких дисков

Я пытаюсь создать одноразовый снимок 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 все это в него. Не уверен, что это разумный подход, но он должен работать. :)

Удачи