Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Резервное копирование и восстановление XFS


 

Резервное копирование и восстановление файловых систем XFS


Резервное копирование и восстановление файловой системы XFS включает две утилиты: xfsdump и xfsrestore.

Для резервного копирования или выгрузки файловой системы XFS используйте утилиту xfsdump.
xfsdump поддерживает инкрементные резервные копии и может исключать файлы из резервной копии, используя флаги размера, поддерева или inode для их фильтрации.

Для поддержки инкрементного резервного копирования xfsdump использует уровни дампа, чтобы определить базовый дамп, к которому относится определенный дамп.
Опция -l указывает уровень дампа (0-9).


Выполнить полное резервное копирование на /dev/device, дамп уровня 0 файловой системы /path/to/filesystem:
# xfsdump -l 0 -f /dev/device /path/to/filesystem

Параметр -f указывает место назначения для резервной копии.
Например, место назначения /dev/st0 обычно используется для ленточного накопителя.
Назначением xfsdump может быть ленточный накопитель, обычный файл или удаленное ленточное устройство.

При инкрементном копировании будут только дампы файлов, которые изменились с момента последнего дампа уровня 0.
Дамп уровня 1 - это первый инкрементный дамп после полного дампа
Следующим инкрементным дампом будет уровень 2 и т. д. максимум до уровня 9.


Чтобы выполнить дамп уровня 1 на ленточный накопитель:
# xfsdump -l 1 -f /dev/st0 /path/to/filesystem


Утилита xfsrestore восстанавливает файловые системы из дампов, созданных xfsdump.
Утилита xfsrestore имеет два режима: простой режим по умолчанию и накопительный режим.

Конкретные дампы определяются по идентификатору сеанса или метке сеанса.
Таким образом, для восстановления дампа требуется соответствующий идентификатор сеанса или метка.

Отобразить идентификатор сеанса и метки всех дампов (полных, так и инкрементных), используйте параметр -I:
# xfsrestore -I

Это обеспечит вывод, подобный следующему

Пример: Идентификатор сеанса и метки всех дампов:
file system 0:
    fs id:        45e9af35-efd2-4244-87bc-4762e476cbab
    session 0:
        mount point:    bear-05:/mnt/test
        device:        bear-05:/dev/sdb2
        time:        Fri Feb 26 16:55:21 2010
        session label:    "my_dump_session_label"
        session id:    b74a3586-e52e-4a4a-8775-c3334fa8ea2c
        level:        0
        resumed:    NO
        subtree:    NO
        streams:    1
        stream 0:
            pathname:    /mnt/test2/backup
            start:        ino 0 offset 0
            end:        ino 1 offset 0
            interrupted:    NO
            media files:    1
            media file 0:
                mfile index:    0
                mfile type:    data
                mfile size:    21016
                mfile start:    ino 0 offset 0
                mfile end:    ino 1 offset 0
                media label:    "my_dump_media_label"
                media id:    4a518062-2a8f-4f17-81fd-bb1eb2e3cb4f
xfsrestore: Restore Status: SUCCESS


Простой режим для xfsrestore

Простой режим позволяет пользователям восстанавливать всю файловую систему из дампа уровня 0.
После определения идентификатора сеанса дампа уровня 0 (то есть идентификатора сеанса) восстановите:
# xfsrestore -f /dev/st0 -S session-ID /path/to/destination

Параметр -f указывает местоположение дампа, а параметр -S или -L указывает, какой конкретный дамп необходимо восстановить.
Параметр -S используется для указания идентификатора сеанса, а параметр -L - для меток сеанса.
Опция -I отображает метки сеанса и идентификаторы для каждого дампа.


Накопительный режим для xfsrestore

Накопительный режим xfsrestore позволяет восстанавливать файловую систему из определенной инкрементной резервной копии, например, с уровня 1 до уровня 9.
Чтобы восстановить файловую систему из инкрементной резервной копии, просто добавьте параметр -r:
# xfsrestore -f /dev/st0 -S session-ID -r /path/to/destination


Интерактивная операция

Утилита xfsrestore также позволяет извлекать, добавлять или удалять определенные файлы из дампа.
Чтобы использовать xfsrestore в интерактивном режиме, используйте параметр -i, например:
# xfsrestore -f /dev/st0 -i

Интерактивный диалог начнется после того, как xfsrestore завершит чтение указанного устройства.
В этом диалоговом окне доступны следующие команды: cd, ls, add, delete и extract
Для полного списка команд используйте help

Для получения дополнительной информации о дампе и восстановлении файловых систем XFS обратитесь к man xfsdump и man xfsrestore


Показательный пример работы

Есть два диска по гигабайту /dev/sdb и /dev/sdc

# df -h
Filesystem  Size   Used Avail Use% Mounted on
/dev/sdb    1014M  33M  982M   4%  /data1
/dev/sdc    1014M  33M  982M   4%  /data2

Установка xfsdump в centos:
# yum install xfsdump


Подопытные файлы:
# echo "test1" > /data1/testfile1 && echo "test1" > /data1/testfile2


Делаем 0й дамп каталога /data1 (указал session label - 1):
# xfsdump -l 0 -f /data2/b1 /data1 -L 1st_backup


Продолжаем опыты:
# echo "test2" >> /data1/testfile1 && echo "test2" >> /data1/testfile3


Делаем 0й дамп каталога /data1 (указал session label - 2):
# xfsdump -l 0 -f /data2/b2 /data1 -L 2st_backup


Продолжаем опыты:
# rm /data1/testfile2 /data1/testfile3 && echo "test3" > /data1/testfile1


Смотрим информацию по дампам:
# xfsrestore -I
file system 0:
        fs id:          6b62efca-8f35-4d0d-b94e-334297e3c95c
        session 0:
                mount point:    centos1:/data1
                device:         centos1:/dev/sdb
                time:           Wed May 15 05:32:05 2019
                session label:  "1st_backup"
                session id:     f10d6efe-7b3b-46e6-9b83-a57cd384ee74
                level:          0
                resumed:        NO
                subtree:        NO
                streams:        1
                stream 0:
                        pathname:       /data2/b1
                        start:          ino 67 offset 0
                        end:            ino 69 offset 0
                        interrupted:    NO
                        media files:    1
                        media file 0:
                                mfile index:    0
                                mfile type:     data
                                mfile size:     23416
                                mfile start:    ino 67 offset 0
                                mfile end:      ino 69 offset 0
                                media label:    "1"
                                media id:       2b26b566-d7e4-46db-9ab3-f8cd0c2a0d08
        session 1:
                mount point:    centos1:/data1
                device:         centos1:/dev/sdb
                time:           Wed May 15 05:32:15 2019
                session label:  "2st_backup"
                session id:     b3f6a2de-2754-47cb-a2ad-2146a4161237
                level:          0
                resumed:        NO
                subtree:        NO
                streams:        1
                stream 0:
                        pathname:       /data2/b2
                        start:          ino 67 offset 0
                        end:            ino 70 offset 0
                        interrupted:    NO
                        media files:    1
                        media file 0:
                                mfile index:    0
                                mfile type:     data
                                mfile size:     24616
                                mfile start:    ino 67 offset 0
                                mfile end:      ino 70 offset 0
                                media label:    "2"
                                media id:       b3eec203-6dcd-4fe5-b083-0470bd9375f0
xfsrestore: Restore Status: SUCCESS


Итого имеем:
# ls -l /data1/ && cat /data1/testfile1
total 4
-rw-r--r--. 1 root root 6 May 15 05:32 testfile1
test3


Восстановление

Восстанавливаем дамп из сессии 1:
# xfsrestore -f /data2/b1 -S "f10d6efe-7b3b-46e6-9b83-a57cd384ee74" /data1

Проверяем:
ls -l /data1/ && cat /data1/testfile1 && cat /data1/testfile2
total 8
-rw-r--r--. 1 root root 6 May 15 05:32 testfile1
-rw-r--r--. 1 root root 6 May 15 05:32 testfile2
test1
test1


Восстанавливаем дамп из сессии 2:
# xfsrestore -f /data2/b2 -S "b3f6a2de-2754-47cb-a2ad-2146a4161237" /data1


Проверяем:
# ls -l /data1/ && cat /data1/testfile1 && cat /data1/testfile2 && cat /data1/testfile3
total 12
-rw-r--r--. 1 root root 12 May 15 05:32 testfile1
-rw-r--r--. 1 root root  6 May 15 05:32 testfile2
-rw-r--r--. 1 root root  6 May 15 05:32 testfile3
test1
test2
test1
test2


Продолжаем опыты:
# rm /data1/testfile2 /data1/testfile3 && echo "test3" > /data1/testfile1


Итого имеем:
# ls -l /data1/ && cat /data1/testfile1
total 4
-rw-r--r--. 1 root root 6 May 15 05:42 testfile1
test3


Восстанавливаем отдельные файлы в интерактивном режиме:
# xfsrestore -f /data2/b2 -i /data1
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: centos1
xfsrestore: mount point: /data1
xfsrestore: volume: /dev/sdb
xfsrestore: session time: Wed May 15 05:32:15 2019
xfsrestore: level: 0
xfsrestore: session label: "2st_backup"
xfsrestore: media label: "2"
xfsrestore: file system id: 6b62efca-8f35-4d0d-b94e-334297e3c95c
xfsrestore: session id: b3f6a2de-2754-47cb-a2ad-2146a4161237
xfsrestore: media id: b3eec203-6dcd-4fe5-b083-0470bd9375f0
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 3 entries processed
xfsrestore: directory post-processing

========================== subtree selection dialog ==========================

the following commands are available:
  pwd
  ls [ <path> ]
  cd [ <path> ]
  add [ <path> ]
  delete [ <path> ]
  extract
  quit
  help

-> ls
  69 testfile3
  68 testfile2
  67 testfile1

-> add testfile1

-> add testfile2

-> extract

 --------------------------------- end dialog ---------------------------------

xfsrestore: restoring non-directory files
xfsrestore: restore complete: 83 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /data2/b2 OK (success)
xfsrestore: Restore Status: SUCCESS


# ls -l /data1/ && cat /data1/testfile1 && cat /data1/testfile2
total 8
-rw-r--r--. 1 root root 12 May 15 05:32 testfile1
-rw-r--r--. 1 root root  6 May 15 05:32 testfile2
test1
test2
test1

 

Управлять сессиями (например удалить сессию) можно тут:
# xfsinvutil -i

? - выдаст подсказку по действиям

xfsinvutil: version 3.1.7
  fs: centos1:/data1
    inv file: 5e303e9c-cdf8-4882-a49a-302989583f0c.StObj
      session level: 0 label: 1st_backup
      session level: 0 label: 2st_backup
---------------------------
| Menu Help                 |
|                           |
| +:       Expand           |
| -:       Collapse         |
| *:       Expand Tree      |
| %:       Collapse Tree    |
| d:       Delete           |
| u:       Undelete         |
| i:       Import Inventory |
| x:       Commit & Exit    |
| q:       Quit             |
| <space>: Select           |
---------------------------

session entry
pruned:  no, flags: 0, time: Wed May 15 05:32:15 2019
mountpt: centos1:/data1, fsid: 6b62efca-8f35-4d0d-b94e-334297e3c95c
device:  centos1:/dev/sdb, sesid: b3f6a2de-2754-47cb-a2ad-2146a4161237
Hit any key to continue...

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект