|
|||||||
Бэкап данных с помощью rsnapshot и NFS
Время создания: 28.04.2016 04:01
Раздел: Компьютер - Linux - Резервное копирование и синхронизация
Запись: xintrea/mytetra_syncro/master/base/1461805288wfdb1afbw2/text.html на raw.github.com
|
|||||||
|
|||||||
Простой бэкап данных с помощью утилиты rsnapshot на расшаренную папку NFS или удаленный сервер. rsnapshot — утилита для создания копий состояния файловых систем на базе rsync. Особенностью является ориентация на создания полных снапшотов файловой системы через заданный интервал времени, для экономии места на диске, использует хитрый трюк с hard-линками. Не изменившиеся файлы по сути представляются hard-линками что экономит много места на диске. Может бэкапить как на удаленный (NFS,SAMBA,SSH,SCP,FTP,SFTP), так и на локальный хост. Установка и настройка NFS-сервера и NFS-клиента В моем случае схема такая: Само-сабой мы бэкапим клиент на сервер. На сервере: yum -y install nfs-utils
Указываем домен (если такой имеется): vi /etc/idmapd.conf
...
Domain = home.local
...
Создаем папку которую будем шарить: mkdir /root/share
И собсвтенно прописываем саму шару: vim /etc/exports
/root/share 172.17.18.61(rw,sync,no_root_squash,no_subtree_check)
Теперь надо запустить сервисы: /etc/rc.d/init.d/rpcbind start
/etc/rc.d/init.d/nfslock start
/etc/rc.d/init.d/nfs start
И добавить в автозагрузку: chkconfig rpcbind on
chkconfig nfslock on
chkconfig nfs on
Так как может понадобиться перезапускать их в будущем, проще засунуть это в один файл: vim /etc/restart.nfs.sh
/etc/rc.d/init.d/rpcbind restart
/etc/rc.d/init.d/nfslock restart
/etc/rc.d/init.d/nfs restart
Перезапускаем NFS: chmod +x /etc/restart.nfs.sh
/etc/restart.nfs.sh
Если у вас есть IPtables: vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT
Настройка клиента: yum -y install nfs-utils
Опять таки домен, если есть: vi /etc/idmapd.conf
...
Domain = home.local
...
Теперь надо запустить сервисы: /etc/rc.d/init.d/rpcbind start
/etc/rc.d/init.d/nfslock start
/etc/rc.d/init.d/nfs start
И добавить в автозагрузку: chkconfig rpcbind on
chkconfig nfslock on
chkconfig nfs on
Снова делаем файл с перезапуском: vim /etc/restart.nfs.sh
/etc/rc.d/init.d/rpcbind restart
/etc/rc.d/init.d/nfslock restart
/etc/rc.d/init.d/nfs restart
Перезапускаем NFS: chmod +x /etc/restart.nfs.sh
/etc/restart.nfs.sh
Теперь монтируем шару: mkdir /root/share
exportfs -a -v
mount -t nfs 172.17.17.96:/root/share /root/share
Убеждаемся что она на месте: df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 11G 8.3G 56% /
tmpfs 504M 0 504M 0% /dev/shm
172.17.17.96:/root/share 15G 9.0G 4.8G 66% /root/share
Если нужен авто-маунт при старте системы: vim /etc/fstab
172.17.17.96:/root/share /root/share nfs rw,sync,hard,intr 0 0
В маунте все видно: mount
/dev/sda1 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
172.17.17.96:/root/share on /root/share type nfs (rw,vers=4,addr=172.17.17.96,clientaddr=172.17.18.61)
Установка и настройка rsnapshot Утилиту rsnapshot мы конечно будем ставить на NFS клиенте и бэкапить данные в шару на удаленный сервер: yum install rsnapshot rsync -y
############################### ssh-keygen -t rsa
Жмакаем пару раз Enter и копируем ключ на сервер: ssh-copy-id 172.17.17.96
Теперь можно заходить по SSH на удаленный сервер без пароля: ssh root@172.17.17.96
############################### Вся конфигурация rsnapshot происходит в одном файле: vim /etc/rsnapshot.conf
Его не стоит пугаться, там по дефолту уже все сделали правильно за вас, нужно только подкоректировать пару строк: Далее, нам необходимо рассмотреть, сколько резервных копий, мы хотели бы хранить. Т.е. мы говорим rsnapshot сохранить определенное количество резервных копий каждого вида интервала. Проверяем что с синтаксисом все в порядке: rsnapshot configtest
Syntax OK
Делаем пробный бэкап в ручную: rsnapshot hourly
Смотрим что в шаре на сервере появился бэкап: cd /root/share
ls -l
total 4
drwxr-xr-x 3 root root 4096 May 7 2014 hourly.0
Как видите бэкап прошел. vim /etc/cron.d/rsnapshot
0 */4 * * * root /usr/bin/rsnapshot hourly
30 3 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
30 2 1 * * root /usr/bin/rsnapshot monthly
Расписание бэкапов: Для бэкапа через SSH стоит позабиться о таких вещах как: Ну и собственно бэкап удаленного линукс хоста в конфиг фале выглядит так: backup root@svn.example.com:/home/svn svn/
backup root@svn.example.com:/var svn/
backup root@svn.example.com:/etc svn/
backup root@svn.example.com:/root svn/
Только помните, что если вы хотите бэкапить удаленный сервер, вам необходимо сделать ключ и положить на этот самый удаленный сервер: ssh-keygen -t rsa
ssh-copy-id svn.example.com
К примеру я использую rsnapshot имеено для таких целей, существует бэкап сервер, где собственно сами бэкапы хранятся, на этом сервер я установил rsnapshot и настроил бэкап удаленных серверов на бэкап сервер. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|