Linux server backup and recovery

Бэкап Linux и восстановление его на другом железе

Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.

На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:

  • сделать бэкап сервера;
  • восстановить бэкап на другом железе.

Гугление не дало внятных ответов, как это сделать, пришлось собирать информацию кусками и пробовать. Всякие acronis’ы отбросил сразу, ибо не интересно.

Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂

Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.

Начинаем копать теорию:

Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.

Итак, план действия:

1. Создание бэкапа

Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.

Переключаемся на root:

Монтируем раздел, который будем архивировать, у меня это sda1, чтобы случайно не наломать дров, монтируем только для чтения. Посмотреть все свои разделы можно при помощи команд ls /dev | grep sd или df -l

Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.

Все готово для создания архива

Здесь у нас параметры: c — создать архив, v — выводить информацию о процессе, z — использовать сжатие gzip, p — сохраняем данные о владельцах и правах доступа, f — пишем архив в файл, путь к файлу, —exclude — исключаем из архива каталог (я исключил каталоги с записями разговоров и каталог с бэкапами FreePBX), /mnt/ — каталог, который архивируем.

Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.

Складываем архив в надежное место за пределами офиса.

Восстановление бэкапа на другом железе

2. Размечаем диск, создаем файловую систему

Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.

Переключаемся на root:

Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.

Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.

Cоздаем файловую систему на первом разделе.

3. Распаковываем архив.

Монтируем отформатированный раздел

Распаковываем архив прямо с флэшки

Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.

4. Создаем MBR на новом диске.

Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:

Переключаемся на новую систему используя chroot:

Делаем swap-раздел для новой системы:

Подключаем его же:

Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:

Открываем второй терминал (Alt+F2) под root:

И видим текущие UUID разделов.

Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.

Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:

На чистый диск должно встать без ошибок. Обновляем информацию из fstab:

Возвращаемся в Live-систему:

Размонтируем все каталоги:

Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.

Все, поехали. Грузимся с жесткого диска:

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

5. Тестирование и устранение неполадок.

Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.

Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:

Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.

Читайте также:  Линукс правая кнопка тачпада

Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:

Подключаем донглы, проверяем, все работает.
Спасибо за внимание.

Источник

Настройка резервного копирования Linux-сервера за 5 минут

Передо мной возникла необходимость настроить резервное копирование на новом Linux-сервере, задачка эта оочень важная, но уж больно скучная: нужно написать и отладить скрипты, которые будут архивировать нужные папки (причем желательно делать инкрементальные архивы), базы данных, хранилища subversion, а затем переносить эти архивы на удаленный сервер. По этому я попробовал нагуглить готовое решение для этой задачки и в результате наткнулся на backup-manager — замечательный опенсорсный набор bash-скриптов, позволяющих:

  • архивировать любые папки, в том числе и создавать инкрементальные архивы. В конфиге просто указывается список директорий, которые должны быть скопированы, а также «черный список» файлов, которые копироваться не будут.
  • делать резервное копирование баз данных MySQL. В конфиге указываются логин и пароль mysql-юзера, имеющего доступ к базам, а всю остальную работу backup-manager делает сам.
  • делать резервное копирование svn-репозиториев, причем бэкап делается не копированием папки с хранилищем, а с помощью команды svnadmin dump.
  • шифровать архивы.
  • копировать созданные архивы на удаленные сервера по FTP, SSH или (это самая важная для меня фича) в хранилище Amazon S3, а также записывать их на DVD.

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

Скачать можно отсюда: www.backup-manager.org/downloads, либо просто можно установить пакет backup-manager (пример для Debian):

aptitude install backup-manager

Кроме того, нужно учесть, что для копирования данных в хранилище Amazon S3 в системе должны быть установлены пакеты libnet-amazon-s3-perl и libfile-slurp-perl:

aptitude install libnet-amazon-s3-perl libfile-slurp-perl

Теперь остается только настроить запуск backup-manager по крону и можно спать спокойно.

Upd.
Все настройки хранятся в файле /etc/backup-manager.conf, вот основные его параметры:

# Папка, в которой архивы будут складываться локально
export BM_REPOSITORY_ROOT=»/var/archives»

# Используемые методы резервного копирования
export BM_ARCHIVE_METHOD=»tarball-incremental mysql svn»

# Далее для каждого из выбранных выше методов резервного копирования задаем настройки
# Список папок, содержимое которых будем бэкапить
BM_TARBALL_TARGETS[0]=»/etc»
BM_TARBALL_TARGETS[1]=»/boot»
BM_TARBALL_TARGETS[2]=»/var/www»
export BM_TARBALL_TARGETS

# Список исключений, то есть файлов в перечисленных выше папках, которые бэкапить не нужно
export BM_TARBALL_BLACKLIST=»/dev /sys /proc /tmp *imagecache*»

# Теперь указываем как часто делать мастер-бэкап и инкрементный бэкап
export BM_TARBALLINC_MASTERDATETYPE=»weekly»
export BM_TARBALLINC_MASTERDATEVALUE=»1″

# Для бэкапа MySQL баз данных указываем какие базы бэкапить и параметры mysql-юзера
export BM_MYSQL_DATABASES=»__ALL__»
export BM_MYSQL_ADMINLOGIN=»user»
export BM_MYSQL_ADMINPASS=»1234″

# Для бэкапа subversion-репозитория указываем путь к хранилищу
export BM_SVN_REPOSITORIES=»/var/repositories»

# Выбираем метод аплоада созданного бэкапа а удаленный сервер
# (еще есть варианты ftp, ssh, ssh-gpg, rsync)
export BM_UPLOAD_METHOD=»s3″

# Для копирования копий на Amazon S3 задаем имя корзины, access key и secret key
export BM_UPLOAD_S3_DESTINATION=»basket-name»
export BM_UPLOAD_S3_ACCESS_KEY=»ABC123″
export BM_UPLOAD_S3_SECRET_KEY=»DEF456″

Это самые основные настройки, в самом конфиге есть еще пара десятков параметров, все они подробно прокомментированы.

Источник

Linux Server Backup and Recovery

There are many reasons companies and individuals have for investing so much in data backup and recovery. To effectively use a Linux server, you need to understand how RAID recovery and backup works.

There are many reasons companies and individuals have for investing so much in data backup and recovery. Information is always very important to every business and having a system that enables you to retrieve data after it has been lost or mistakenly deleted is a huge relief. For this purpose, backup and recovery refer to a system of storing copies of data and restoring them to their original location after the initial copy (the primary data) has been lost.

When it comes to data backup and recovery on the Linux platform, there are truly quite a number of ways to go about backing up data on Linux servers . Some may include cloud backups, the use of RAID technology , or a basic scheduled local backup of data on a localized disk. Regardless of the preferred option, a backup is essential to the operations of any business entity.

For most Linux users, it only makes sense that the RAID backup system is effectively utilized to backup data. Hence, to efficiently use a Linux server, you must understand how the RAID backup functions and works

RAID Backup.

RAID stands for Redundant Array of Inexpensive Disks or Redundant Array of Independent Drives. A RAID system always has at least 2 drives working individually and simultaneously. The raid is set up to create a fail-proof system where data is better optimized and data security is ensured, thanks to a concurrent backup system. RAID achieves this by storing data on many drives.

There is a hardware RAID and the software RAID. While the former requires dedicated hardware to backup data as the name implies, the later can backup data without any additional hardware. The hardware RAID is more expensive than the software RAID for obvious reasons; the hardware RAID ensures higher productivity and performance than the software. Many interfaces like the fiber channel, IDE, SCSI, SATA, etc work well with RAID systems.

For a RAID, you must have the right components to use, and one of such components are disks which are the major component(s) needed for data storage.

Choosing the Disks That Make the Array

Creating the RAID array is very crucial as there are many RAID devices to choose from and one must select the right kind of disks. Having the wrong choice of disks may be the first point of weakness that might later lead to data compromise.

Читайте также:  Как выглядят рабочие столы linux

When it comes to making a choice of disks, there are basically two options: the consumer-grade drives and the server-grade drives.

Now, we have earlier mentioned that RAID is a cheap option. What we meant by that was this, the implementation of RAID won’t cost you a limb. Nevertheless, you are expected to have some considerably large buying power to support your thirst for a functional data backup solution. Anything worth something has to inevitably cost something. This may be that singular point where you might have to make some costly sacrifices.

When it comes to the disks, it is strictly advised that you avoid the consumer-grade drives by any means possible. This may be attributed to the fact that these are made without the considerations of server operations in mind. Hence, it is advised that you go all out and get the server-grade drives instead.

While the server-grade drives might take a toll on your finances initially, they tend to be a cheaper alternative, in the long run, better still, they ensure to keep data losses to the barest minimum in terms of downtime, etc. In the long run, the server-grade drives provide more value for your money than the consumer-grade drives.

The reason is pretty simple. The consumer consumer-grade drives were not designed for the kind of job you are purchasing them for, which in many cases involve continuous operations for extended periods of time.

As a result of this, there is a high likelihood of disk failure and data loss. And even in the event that you do not lose data, there are a lot of other repercussions and inconveniences that could have been avoided. This is the reason why you must not even consider the low graders for your data.

Go for the server-grade drives instead. They can go the long haul without any such complications. They are built to stay awake all their lives. Get them for your data, and you would be certainly making the right choice.

Choosing the RAID Level.

When it comes to choosing the RAID level, a lot of considerations have to be made. The reason you are creating a RAID in the first place is to have a good data backup and recovery system for your data. That’s the plan from the onset. So if this is what we want to achieve, it would be advisable to go for a RAID level that is totally fail-proof. If you want to consider the options available to you, you can read our article on RAID here.

But based on expert advice, we would rather you just go for RAID 6 and above to ensure efficient data backup and operations. If possible, just get a RAID 10. The reasons are because these types ensure the kind of efficiency, redundancy, and security you need with your data and server.

The RAID 10, for example, is a hybrid of RAID1 and 0. This makes it the sure bet for both redundancy and performance. But anything from RAID 6 should fare well enough. Note, however, that while the RAID 10 offers you quality data protection services, such data protection comes at the expense of storage space and you also have to put this into consideration when choosing the RAID level best suited for your needs.

Below is a short note on some of the different RAID levels to help you understand better:

  1. RAID LEVEL 0: The RAID level 0 system ensures performance by using multiple disks at the same time and improves on such performance by making use of many more controllers.

ADVANTAGES of RAID LEVEL 0:

The RAID level 0 is easy to use, performs well and ensures that all storage is used up and so, there is no overhead.

DISADVANTAGES OF RAID LEVEL 0:

It has very low data backup and storage

RAID LEVEL 0 is best suited for users who don’t need much storage space or who don’t have vital information to store.

  1. RAID LEVEL 1: RAID level 1 seems like an improvement on RAID level 0 because it developed a two-way data storage system whereby data is stored both in the data drives or the mirror drives. This means that if one of the drives fails, the data is recovered from the other drive, nothing is lost, and operations can continue as usual.

ADVANTAGES OF RAID LEVEL 1:

RAID level 1 utilizes a simple technological system that ensures speed and data recovery.

DISADVANTAGES OF RAID LEVEL 1:

Because the RAID LEVEL 1 store data twice, much of the storage space that should be utilized storing fresh data is instead used to store data that has already been stored in another drive.

RAID level 2 is ideal for small servers handling vital information.

  1. RAID LEVEL 5: RAID level 5 is a very secure RAID level and can work with up to 16 drives. It has the ability to experience a single drive failure without losing important data.
Читайте также:  Retro wave тема для windows 10

ADVANTAGES OF RAID LEVEL 5:

This Raid level is an improvement on other RAID levels below it and reads data transactions very fast. Secondly, users don’t have any reason to be afraid when a single disk failure occurs because the storage controller has the ability to restore the data on a new drive.

DISADVANTAGES OF RAID LEVEL 5:

The major disadvantage of this level is its complex technology. Data is only secure if only one disk fails at a time. If more than one disk fails at the same time, data is lost permanently.

RAID level 5 is best for servers that don’t have a lot of data drives.

  1. RAID LEVEL 6: There is no much difference between RAID level 6 and RAID level 5 except that with level 6 data can still be retrieved even when two disks fail at the same time. This makes it more secure than level 5.

ADVANTAGES OF RAID LEVEL 6:

RAID level 6 is more secure than the levels below it and also reads data transactions with speed.

DISADVANTAGES OF RAID LEVEL 6:

It writes data transactions are very slow, even slower than that of RAID level 5. It makes use of complex technology too.

  1. RAID LEVEL 10: This RAID level is a hybrid RAID configuration and is a combination of RAID levels 0 and 1. The major advantage of this level is that it rebuilds lost data way faster than other levels but has low storage capabilities.

How to Set Up RAID.

For this article, we would be using RAID 10 as our example. We would show how you can create a Linux RAID 10 array in very simple steps. If you follow the order, you can’t go wrong.

Creating a Linux RAID 10 array*

To create a RAID 10 array,

  1. First, list the disks which are all available for creating RAID 10.

“# ls -l /dev | grep sd”

  1. Partition the 4 disks using the ‘fdisk’ command.
  1. Examine the disks for any existing raid blocks. This should be done after partitioning the disks.

“# mdadm –examine /dev/sd[b-e]”

“# mdadm –examine /dev/sd[b-e]1”

  1. First, create 2 sets of RAID 1 using 4 disks ‘sdb1’ and ‘sdc1’ and another set using ‘sdd1’ & ‘sde1’.

“# mdadm –create /dev/md1 –metadata=1.2 –level=1 –raid-devices=2 /dev/sd[b-c]1”

“# mdadm –create /dev/md2 –metadata=1.2 –level=1 –raid-devices=2 /dev/sd[d-e]1”

  1. Now, you can create the RAID 0 using md1 and md2 devices.

“# mdadm –create /dev/md0 –level=0 –raid-devices=2 /dev/md1 /dev/md2”

  1. Now, we save the configuration under ‘/etc/mdadm.conf‘ to load all raid devices at every reboot.

“# mdadm –detail –scan –verbose >> /etc/mdadm.conf”

Troubleshooting

Troubleshooting in computer language refers to the processes involved in identifying and fixing a computer malfunction. Troubleshooting connotes that there’s a problem either with the hardware, the software, or both and that the cause of the malfunction should be identified and fixed before the computer system begins to function optimally again.

One useful tip with troubleshooting is to first think and check for general problems that are most likely to have caused the problem before moving gradually to less common ones.

When it comes to troubleshooting, one of the major challenges you would ever face would be a disk failure. When this happens, it is important that you don’t panic because panicking would drive you into performing some actions that would further compound the problem. Instead of panicking, just go straight to your mdadm cheat sheet. That’s what everybody does. You should get a lot of help there.

In the case of a failed disk, you would want to remove the failed disk, shut down the machine and replace the disk with a new server-grade (not low grade) disk. Then you can add the new disk to the array once you have created the necessary partitions.

Recovery Methods

While there exist a number of reasons why data losses occur on a RAID 10 array, here are some of the most common causes of data loss.

The array disk failed.

An array disk or disks contained corrupted sectors.

The power supply failed.

The RAID controller is corrupted.

The rebuild failed.

The data on the disk is corrupted.

You accidentally deleted the data from an array.

If you notice any of these failures, ensure to avoid writing new data to the disk as this will drastically reduce the chances of full data recovery.

Compression and Archiving

RAID 10 offers ample compression and archiving features to ensure that data can be stored more efficiently, and easily called upon. These are especially necessary for servers which may require large user files that need to be compressed steadily in a bid to justify the expenses such as storage space, and air conditioning associated with server procurement. Thus compression and archiving remain an integral need in RAID setups generally.

Conclusions

There you have it. You can have the peace and safety you’ve always desired for your data and server. All you have to do is get a RAID. But keep in mind that the RAID is not an alternative to a concurrent backup and you would still need to back up the data from the RAID system.

Источник

Оцените статью