Spec-Zone .ru
спецификации, руководства, описания, API
|
Поддерживать высоконадежные среды, обеспечивая мгновенную копию информации и о в настоящий момент активной машине и о горячем резервном копировании - критическая часть решения для HA. Есть много решений этой проблемы, включая Главу 16, Репликацию и Раздел 15.2, "Краткий обзор MySQL с DRBD/Pacemaker/Corosync/Oracle Linux".
Файловая система ZF обеспечивает функциональность, чтобы создать снимок содержания файловой системы, передать снимок другой машине, и извлечь снимок, чтобы воссоздать файловую систему. В любое время можно создать снимок, и можно создать так много снимков, как Вам нравится. Непрерывно создавая, передавая, и восстанавливая снимки, можно обеспечить синхронизацию между одной или более машинами способом, подобным DRBD.
Следующий пример показывает простую систему Соляриса, работающую с единственным пулом ZF, смонтированным в /scratchpool
:
Filesystem size used avail capacity Mounted on/dev/dsk/c0d0s0 4.6G 3.7G 886M 82% //devices 0K 0K 0K 0% /devicesctfs 0K 0K 0K 0% /system/contractproc 0K 0K 0K 0% /procmnttab 0K 0K 0K 0% /etc/mnttabswap 1.4G 892K 1.4G 1% /etc/svc/volatileobjfs 0K 0K 0K 0% /system/object/usr/lib/libc/libc_hwcap1.so.1 4.6G 3.7G 886M 82% /lib/libc.so.1fd 0K 0K 0K 0% /dev/fdswap 1.4G 40K 1.4G 1% /tmpswap 1.4G 28K 1.4G 1% /var/run/dev/dsk/c0d0s7 26G 913M 25G 4% /export/homescratchpool 16G 24K 16G 1% /scratchpool
Данные MySQL хранятся в каталоге на /scratchpool
. Чтобы помочь демонстрировать
часть основной функциональности репликации, есть также другие элементы, сохраненные в /scratchpool
также:
total 17drwxr-xr-x 31 root bin 50 Jul 21 07:32 DTT/drwxr-xr-x 4 root bin 5 Jul 21 07:32 SUNWmlib/drwxr-xr-x 14 root sys 16 Nov 5 09:56 SUNWspro/drwxrwxrwx 19 1000 1000 40 Nov 6 19:16 emacs-22.1/
Чтобы создать снимок файловой системы, Вы используете zfs snapshot
, определение
пула и имени снимка:
root-shell> zfs snapshot scratchpool@snap1
Перечислять снимки, уже взятые:
root-shell> zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTscratchpool@snap1 0 - 24.5K -scratchpool@snap2 0 - 24.5K -
Сами снимки сохранены в пределах метаданных файловой системы, и пространство, требуемое сохранить их, изменяется со временем из-за способа, которым создаются снимки. Начальное создание снимка очень быстро, потому что вместо того, чтобы делать всю копию данных и метаданных, требуемых содержать весь снимок, ZF записывают только момент времени и метаданные того, когда снимок создавался.
Поскольку больше изменений к исходной файловой системе производится, размер увеличений снимка, потому что больше пространства обязано вести учет старых блоков. Если Вы создаете много снимков, говорите один в день, и затем удаляете снимки из ранее на неделе, размер более новых снимков мог бы также увеличиться, поскольку изменения, которые составляют более новое состояние, должны быть включены в более свежие снимки, вместо того, чтобы быть распространенными по семи снимкам, которые составляют неделю.
Невозможно непосредственно поддержать снимки, потому что они существуют в пределах метаданных файловой системы,
а не как регулярные файлы. Чтобы получить снимок в формат, который можно скопировать в другую файловую систему,
ленту, и так далее, Вы используете zfs send
команда, чтобы создать потоковую версию
снимка.
Например, чтобы выписать снимок к файлу:
root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1
Или лента:
root-shell> zfs send scratchpool@snap1 >/dev/rmt/0
Можно также выписать инкрементные изменения между двумя использованиями снимков zfs
send
:
root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes
Чтобы восстановить снимок, Вы используете zfs recv
, который применяет информацию о
снимке или к новой файловой системе, или к существующему.