Как сделать файловый сервер предприятия с резервным копированием?

Автор PbI6A, 01 ноября 2013, 08:20:32

« назад - далее »

0 Пользователи и 6 гостей просматривают эту тему.

zCirill

Цитата: PbI6A от 20 ноября 2013, 19:19:02Если какой-то файл удаляется, то всё ок, а если перезаписывается? Или, того хуже, дописывается >>в конец? В этом случае изменится и файл во всех директориях "бэкапа"  Или я не прав


rsync не открывает dst файл для записи, как например делает cp, а пишет создавая новый файл с тем же именем, но другим inode
тоесть файл 1 отредактированный пользователем, будет записан с новым inode и вся конструкция будет работать.

[shka@o93-shka ~]$ stat lll
  File: 'lll'
  Size: 5          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d Inode: [b]14422574[/b]    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    shka)   Gid: (  100/   users)
Access: 2013-11-21 14:51:43.454692805 +0400
Modify: 2013-11-21 14:51:43.454692805 +0400
Change: 2013-11-21 14:51:43.454692805 +0400
Birth: -
[shka@o93-shka ~]$ nano ttt
[shka@o93-shka ~]$ rsync -v ttt lll
ttt

sent 87 bytes  received 35 bytes  244.00 bytes/sec
total size is 6  speedup is 0.05
[shka@o93-shka ~]$ stat lll
  File: 'lll'
  Size: 6          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d Inode: [b]14422545[/b]    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    shka)   Gid: (  100/   users)
Access: 2013-11-21 14:52:08.947690213 +0400
Modify: 2013-11-21 14:52:08.947690213 +0400
Change: 2013-11-21 14:52:08.947690213 +0400
Birth: -


strace cp 1 2 и strace rsync 1 2 возможно расскажут подробнее (я в вызовах не шабельме) что именно происходит

PbI6A

Вот ещё что увидел - btsync. Это не то, что подошло бы для синхронизации?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

gardarea51

У меня наверное сделано смешно, но вдруг пригодится. Каждую ночь делается LVM-снапшот, в него tar'ом делается инкрементальный бэкап. 1го числа каждого месяца - полный бэкап, остальные - инкрементально. Бэкапы складываются на отдельный диск, с которого я их потом забираю через самба-шару.

PbI6A

У меня объём под 2 Тб. Слабореальная перспектива :( Даже если гигабайтом подключить отдельное хранилище по nfs, бэкапы делать будет тяжко :(
Кстати, насчёт nfs - опыт использования весьма положительный.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

gardarea51

У меня терабайт )) но пока всего гигабайт 70 занято. Если бы было хотя бы 500Гб пришлось бы уже тяжко, просто нет отдельного компьютера, который можно выделить под бэкапы, потому пока такая простая схема. :)

Сорри за оффтоп.

PbI6A

Делаю бэкап rsnapshot-ом в пределах одной файловой системы. Все копирует, покуда хватает места. Хардлинки не делает. Что я не правильно делаю?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

zCirill

Цитата: PbI6A от 12 декабря 2013, 11:34:54Делаю бэкап rsnapshot-ом в пределах одной файловой системы. Все копирует, покуда хватает места. Хардлинки не делает. Что я не правильно делаю?

файловая система хардлинки поддерживает?

/bin/cp -al  source target

stat source
stat target

PbI6A

А почему бы ext4 не поддерживать? Какой-то косяк в настройках rsnapshot-а возможен?

Сообщение объединено: 13 декабря 2013, 07:17:28

/shares - это примонтированный раздел, в пределах которого производятся действия.
/shares/user - директория, где лежат поддиректории с документами отделов
Ещё в /shares/user/bk примонтирован отдельный винт, куда резервируется всё архиватором 7z в режиме обновления, но в конфиге rsnapshot-а он не фигурирует.

Вот что увидел:

root@user:/shares/user/rsync# touch source

root@user:/shares/user/rsync# /bin/cp -al  source target

root@user:/shares/user/rsync# stat source
  Файл: «source»
  Размер: 0            Блоков: 0          Блок В/В: 4096   пустой обычный файл
Устройство: 901h/2305d   Inode: 67259293    Ссылки: 2
Доступ: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2013-12-13 11:12:41.889873244 +0800
Модифицирован: 2013-12-13 11:12:41.889873244 +0800
Изменён: 2013-12-13 11:12:48.369850791 +0800
Создан: -

root@user:/shares/user/rsync# stat target
  Файл: «target»
  Размер: 0            Блоков: 0          Блок В/В: 4096   пустой обычный файл
Устройство: 901h/2305d   Inode: 67259293    Ссылки: 2
Доступ: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2013-12-13 11:12:41.889873244 +0800
Модифицирован: 2013-12-13 11:12:41.889873244 +0800
Изменён: 2013-12-13 11:12:48.369850791 +0800
Создан: -

root@user:/shares/user/rsync#

Сообщение объединено: 13 декабря 2013, 07:56:30

Настройка rsnapshot-а примерно такая:
...
###########################
# SNAPSHOT ROOT DIRECTORY #
###########################

# All snapshots will be stored under this root directory.
#
snapshot_root   /shares/snapshots/
...
###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /shares/user/backup/    localhost/
backup  /shares/user/common/    localhost/
backup  /shares/user/disk_t/    localhost/
backup  /shares/user/rsync/     localhost/
...
backup  /shares/user/user_it/  localhost/
backup  /etc/   localhost/
#backup /home/          localhost/
#backup /etc/           localhost/
#backup /usr/local/     localhost/
#backup /var/log/rsnapshot              localhost/
#backup /etc/passwd     localhost/
...
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

zCirill

вот так вот в настройках?

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp      /bin/cp


не очень понял про бэкапы в пределах одной файловой системы и неделания хардлинков.

первая копия - всегда полная копия с бэкапируемой директории, вторая копия - хардлинки на первую копию + изменные файлы в бэкапируемой директории.
у вас не делается хардлинки на втором бэкапе или вы ожидали что и первый бэкап будет хардлинками сделан?










PbI6A

...
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp          /bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm          /bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync       /usr/bin/rsync
...
Вообще-то оно поставлено из стандартного дебиановского репозитория, не понятно, с чего бы оно не было бы настроено под линуксовые команды cp, rm и др...

Вообще-то да, думал что "и первый бэкап будет хардлинками сделан" %(
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

zCirill

Цитата: PbI6A от 17 декабря 2013, 12:51:51Вообще-то оно поставлено из стандартного дебиановского репозитория, не понятно, с чего бы оно не было бы настроено под линуксовые команды cp, rm и др...

Вообще-то да, думал что "и первый бэкап будет хардлинками сделан" %(

сама мысль хранения бэкапа в пределах одной файловой системы мне кажется странной )
но если очень хочется, можно сделать daily.0 с копией в рукопашную через cp -ral source target

PbI6A

Бэкап нужен, в основном, для вытаскивания "случайно" убитых файлов пользователей по причине их без{рукости|мозглости}. Не помню, чтобы у меня на серваке невосстановимо ломалось хранилище по причине аппаратных сбоев или нарушения целостности ФС.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

qupl

Цитата: PbI6A от 19 декабря 2013, 12:00:15Не помню, чтобы у меня на серваке невосстановимо ломалось хранилище по причине аппаратных сбоев или нарушения целостности ФС.
Это всегда бывает неожиданно. И без бэкапа будет никуда.

PbI6A

Вообще, я планирую ежечасно кроном запускать синхронизацию всего на второй сервер, а ежедневно полный бэкап rsnapshot-ом так что в случае падения переходим на второй сервак и извиняемся насчёт того, что с сегодняшними доками случился упс...

Сообщение объединено: 23 декабря 2013, 11:58:23

Цитата: zCirill от 17 декабря 2013, 14:27:57но если очень хочется, можно сделать daily.0 с копией в рукопашную через cp -ral source target

Кстати, да... Мне вот подумалось, а надо ли мне тогда вообще rsnapshot, если я по такому образу могу свой бэкапскрипт написать? :)

Сообщение объединено: 24 декабря 2013, 08:52:31

Сделал пока вот так:
#!/bin/sh
BASE=/shares/user
BASEBK=/shares/snapshots/hourly
рм -рф $BASEBK-10
mv $BASEBK-9 $BASEBK-10
mv $BASEBK-8 $BASEBK-9
mv $BASEBK-7 $BASEBK-8
mv $BASEBK-6 $BASEBK-7
mv $BASEBK-5 $BASEBK-6
mv $BASEBK-4 $BASEBK-5
mv $BASEBK-3 $BASEBK-4
mv $BASEBK-2 $BASEBK-3
mv $BASEBK-1 $BASEBK-2
mv $BASEBK $BASEBK-1
mkdir $BASEBK
cp -ral $BASE/backup $BASEBK/
cp -ral $BASE/common $BASEBK/
...(аналогичные строки для других директорий)

BASE - откуда бэкапим
BASEBK - куда бэкапим, включая префикс имени директории. В данном случае директории будут hourly - последняя, hourly-1 - предпоследняя и т.д.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

zCirill

cp -ral спасет только от удаленного файла, предыдущей версии не будет.
inod будет тот же у файла и реально будет куча ссылок на один и тот же файл.