Posts Tagged ‘Zettabyte Filesystem’

Репликация средствами ZFS

Tuesday, May 27th, 2008

В последнее время все чаще и чаще возникает необходимость в создании и поддержании копий данных например для сред разработки или резервных центров. Как правило такая задача решается с помощью современных дисковых массивов или специализированного ПО, которые реализуют эту функциональность на соотвествующем уровне. Для простых систем с невысокими требованиями можно реализовать подобную схему с помощью ZFS.

Основным средством передачи данных является комбинация команд zfs send и zfs recieve, к примеру для копирования датасета data из пула production в пул development можно воспользоваться следующим набором команд:

# zfs snapshot production/data@snapshot00
# zfs send production/data@snapshot00 | \
    zfs receive -d development/data

Если пул development находится на другом сервере поток данных можно отправить туда через ssh, предварительно настроив безпарольную аутентификацию. Замечу что передавать таким образом можно передавать только мгновенные снимки, что весьма логично, т.к. сама файловая система может измениться в процессе ее передачи.

После завершения этой операции в пуле development появится датасет содержащий копию данных data из production. Пока что ничего интересного - можно было с тем же успехом просто скопировать файлы между двумя файловыми системами.

Интересное в данной схеме это возможность инкрементального обновления данных. ZFS позволяет передавать не полный снимок файловой системы (датасета) а только блоки данных изменившиеся в период времени между созданием первого и второго снимков, которые затем могут быть применены к копии, содержащий первый снимок. При больших объемах данных эта возможность серьезно экономит время обновления копии. Создание таких дифференциальных потоков данных выполняется с помощью команды zfs send с опцией -i:

# zfs snapshot production/data@snapshot01
# zfs send -i snapshot00 production/data@snapshot01 | \
   zfs receive -d development/data

Стоит отметить что данная операция закончится ошибкой если данные development/data были изменены (заметим что даже простой просмотр содержимого этого файловой системы вызовет изменение метаданных - меток времени последнего доступа), поэтому перед этой операцией необходимо откатить целевую файловую систему на момент создания первого снимка:

# zfs rollback development/data@snapshot00

Написав несложный скрипт и запланировав его с помощью cron можно при помощи этих средств получить несложную схему репликации данных.

Пара новостей про ZFS

Thursday, April 3rd, 2008

Возможность загрузки с ZFS скорей всего появится в Solaris 10 Update 6 (очевидно это конец 2008 года - начало 2009) и 88 билде OpenSolaris (скоро), а вот возможности удаления дисков из пула в ближайшее время не ожидается :-(

Проверка файлов на вирусы на лету в ZFS

Saturday, January 5th, 2008

В 78 билде OpenSolaris в ZFS появилась поддержка протокола ICAP, на основе которого можно реализовать прозрачное для пользователя и приложения сканирование файлов на вирусы при помощи ClamAV или другого антивирусного ПО. Полностью процедура настройки описана в статье на Genunix Wiki. В конечном итоге это будет выглядеть как ошибка (EPERM) доступа к файлу, содержащего вирус:

# ls -al eicar.com
-rw-r--r-- 1 fubar staff 68 Dec 8 13:31 eicar.com
# cat eicar.com
cat: cannot open eicar.com: Permission denied
# mv eicar.com virus.com
mv: cannot rename eicar.com to virus.com: Permission denied

Планируете создание файлового сервера (SMB/NFS)? Подумайте об OpenSolaris и ZFS :)