Створення резервних копій та відновлення freebsd 8

По ходу роботи з нашим сервером на FreeBSD частенько виникала думка про резервне копіювання і відновлення системи. Хіба мало що, експериментів багато різних ставимо, снепшот у віртуальному середовищі - річ хороша, але в реальності цього не вистачає, і тут вже доведеться самостійно подбати про резервне копіювання даних і про оперативне відновлення.

Крім цього, таке завдання може виникнути в разі, якщо потрібно перенести робочу систему на іншу апаратну платформу (наприклад, заміна жорсткого диска, переїзд на інший сервер), та хіба мало які випадки бувають. Знати потрібно. Вміти треба. І зараз ми разом з Вами займемося цим.

Вихідна система - FreeBSD 8.2, зібрано своє ядро ​​GATEWAY (на сайті я розписував, як це робиться), підняті базові служби (SSH, APACHE, SQUID), в загальному скажу відверто, сервер продакшн, тобто бойової. Буду переносити з реального середовища в віртуальну машину зі збереженням всього функціоналу.

Крок 1. Зберігаємо (роздруковуємо) розмітку диска, це може дуже стати в нагоді.

Створення резервних копій та відновлення freebsd 8

Я рекомендую завжди при резервному копіюванні зберігати таку інформацію. По-перше, для створення точної копії файлової системи нам знадобляться чисельні значення початку і кінця точок монтування, по-друге, буде не зайвим знати, з яким символом відповідає та чи інша точка монтування, щоб не заплутатися.

Бекапіть ми будемо кореневий розділ /. розділ / var і розділ / usr. Разом - три архіву. Запишіть собі, що кореневого розділу соответсвтует символ [a], usr - [f], var - [d]. Якщо не очевидно, то це значення варто після вказівки диска: / dev / ad0s1 [буква]. Ось відповідність цих букв розділах дуже для нас важливо. Коли ми зберегли висновок команд, починаємо знімати архіви.

Для архівування скористаємося утилітою dump. За допомогою неї зробимо «знімок» стану файлової системи на працюючій системі, а потім цей знімок стиснемо в один файл.

Виконуємо послідовно команди:

# Dump -0Laf - / | gzip -9> /home/ftp/root.img.gz
# Dump -0Laf - / var | gzip -9> /home/ftp/var.img.gz

Вилучаємо файли root.img.gz і var.img.gz з каталогу ftp на знімний жорсткий диск,

Звичайно можна вилучити архіви і іншим способом, наприклад за ftp (у мене каталог ftp саме для цього), але це вже на ваш розсуд.

Питання. для чого ми вилучили два архіву, а потім бекапіть третій. Чому не можна було спершу забекапіть все три, а потім все три витягнути?

Відповідаю. Справа в тому, що каталог / home у FreeBSD є символічною посиланням на / usr / hom e. Фактично, ми б вклали в архів usr.img.gz все, що є на розділі / home / включаючи два перших архіву, відбулося б дублювання і наш архів виріс би в розмірі.

Звичайно, спершу можна було б зняти розділ / usr, а потім вже / var і /, тоді все було б нормально, але я зробив саме так, щоб пояснити різницю. Будьте уважні, якщо архів виходить невиправдано великим, можливо ви в нього рекурсивно запаковують його ж самого або інші архіви.

Сподіваюся, це розібрали. Отже, розберемо детальніше команди бекапа. На прикладі останнього:

# Dump -0Laf - / usr | gzip -9> /home/ftp/usr.img.gz

Як ми бачимо, тут відбувається наступне: запускається команда dump з ключами 0Laf - / usr

  • 0 - означає найповніший режим бекапа, він гарантує, що файлова система буде скопійована максимально повно.
  • L - означає створення бекапа з снапшотов. Тобто спершу створюється знімок системи, а потім вже цей знімок пакується в dump. Тобто годі й перезавантажуватися в Single Mode а проводити бекапірованіе прямо на серверах.
  • a - автоматичний розмір архіву, поки не закнчітся місце.
  • f - файл виводу. Як файлу тут вказано -, тобто передається стандартний пристрій виводу (екран).
  • / Usr - той «розділ», який ми «бекап».

Далі наш висновок на екран по Конвейр передається утиліті gzip. стискає дані, з параметром -9 (найкраща ступінь стиснення) і перенаправленням в файл /home/ftp/usr.img.gz. Ось так все просто.

Створення резервних копій та відновлення freebsd 8

Крок 3. Відновлення з резервної копії.

Взагалі, все мануали щодо створення резервної копії не варті нічого, якщо немає прикладу повернення сервера в робочий стан використовуючи створені раніше бекапи. По суті що - всього лише команда dump. А що тепер з цими архівами робити, якщо сервер наказав довго жити? Ось саме зараз і починається найцікавіше. Ми будемо відновлювати сервак.

Для цього я створив нову віртуальну машину з чистим диском об'ємом 6 Гб. Ніяку операційну туди я не ставив, її ми отримаємо на виході з архівів.

Отже. Диск порожній, підключаємо туди інсталяційний диск FreeBSD:

Створення резервних копій та відновлення freebsd 8

Вибираємо будь-яку мову, хоч US, це зараз не важливо.

Переходимо до пункту Custom.

Створення резервних копій та відновлення freebsd 8

Там йдемо в 3: Partition

Створення резервних копій та відновлення freebsd 8

Створюємо слайс (A - Use Entire Disk) - використовуємо весь диск.

Створення резервних копій та відновлення freebsd 8

Попередньо, для чистоти експерименту слайс можна видалити (D). Після того, як створили слайс, натискаємо (Q).

Стандартний завантажувач нас влаштує цілком.

Створення резервних копій та відновлення freebsd 8

Потім переходимо до пункту 4: Label. де можна розкидати точки монтування.

Створення резервних копій та відновлення freebsd 8

Створюємо точки з розмірами довільними, але саме в такому порядку *.

Насамперед створюємо кореневий розділ, він отримує букву [a]. Ось тут на допомогу прийде той файл, який ми створили перед бекапом - карта розділів, де зрозуміло, якій точці монтування яка буква присвоєна.

Своп у нас [b], значить другим створюємо своп. Розміри можуть бути інші, це зараз не так важливо, головне, щоб розпаковані файли вмістилися.

Під [c] у нас логічесій розділ (що дорівнює сумі всіх наступних), тому просто пропускаємо.

Далі [d]. Це / var. Створюємо розділ / var.

Потім / tmp, а потім вже / usr з буквами відповідно [e] і [f].

Створення резервних копій та відновлення freebsd 8

* Взагалі кажучи, створювати можна довільно, а букви потім переправити в файлі / etc / fstab, але це вже додаткові фішки. Тобто немає нічого страшного, якщо ви створите розділи по іншому, завжди можна переправити текстовий файлик і все буде працювати як раніше.

Коли розділи створені, натискаємо W (записати зміни) і Q (вийти). Більше нам тут нічого не потрібно, залишаємо установник Sysinstall і витягуємо диск FreeBSD Install.

Створення резервних копій та відновлення freebsd 8

Ставимо Livecd Frenzy (фряха лайф-сд)

Створення резервних копій та відновлення freebsd 8

Ось і з'явилося запрошення, будемо працювати.

Створення резервних копій та відновлення freebsd 8

Спершу отмонтіруем все примонтировать розділи диска в / mnt / Вони імюет літери від a до f (як ми і створювали на попередньому етапі), тому можна використовувати такий хитрий прийомчик:

Створення резервних копій та відновлення freebsd 8

Тепер створюємо нові файлові системи на розділах [a], [f], [d]. Зверніть увагу, що команда вводиться так: