The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Малоизвестный, но чрезвычайно удобный способ работы со снапшотами в ZFS
Интересный способ работы со снапшотами ZFS без использования команд zfs, причем
метод можно использовать не только с локальной машины, но и с удаленной.

Работа локально.

Создаем временный ZFS пул для тестирования:

    jmoekamp@opensolaris1:/testpool1# zpool create -f testpool1 /export/home/jmoekamp/test

Переходим в данную директорию и создаем небольшой файл для подтверждения
работоспособности снапшотов:

    jmoekamp@opensolaris1:/# cd testpool1
    jmoekamp@opensolaris1:/testpool1# touch testfile1
    jmoekamp@opensolaris1:/testpool1# ls 
    testfile1

Для просмотра ранее созданных снапшотов можно использовать путь .zfs/snapshot
(снапшотов нет, директория пуста):

    jmoekamp@opensolaris1:/testpool1# cd /testpool1/.zfs/snapshot
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot#

Но самое интересное, что через манипуляцию файлами в директории .zfs можно
создавать, переименовывать и удалять снапшоты ! Без вызова zfs-команд, просто
манипулируя файлами.

Создадим в директории .zfs поддиректорию:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# mkdir snapshot-21042010-1
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep testpool1
    testpool1@snapshot-21042010-1       0      -    22K  -

Как видим, автоматически был создан новый снапшот файловой системы.
Проверить данный факт можно создав в основном дереве ZFS дополнительный файл:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# ls -l /testpool1
    total 1
    -rw-r--r-- 1 root root 0 2010-04-21 17:42 testfile1
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# touch /testpool1/testfile2
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# ls -l /testpool1
    total 1
    -rw-r--r-- 1 root root 0 2010-04-21 17:42 testfile1
    -rw-r--r-- 1 root root 0 2010-04-21 17:45 testfile2
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# cd snapshot-21042010-1/
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot/snapshot-21042010-1# ls -l
    total 1
    -rw-r--r-- 1 root root 0 2010-04-21 17:42 testfile1

Переименуем директорию со снапшотом при помощи обычной команды mv, при этом
автоматически будет переименован и снапшот:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# mv snapshot-21042010-1 snapshot-21042010-1.1
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep testpool1
    testpool1@snapshot-21042010-1.1    19K      -    22K  -

Создаем еще один снапшот:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# mkdir snapshot-21042010-2
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep testpool1
    testpool1@snapshot-21042010-1.1    19K      -    22K  -
    testpool1@snapshot-21042010-2        0      -    22K  -

Как видно внутри уже два файла, в отличие от одного в первом примере.

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

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# rmdir snapshot-21042010-1.1 
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# ls -l
    total 2
    drwxr-xr-x 2 root root 4 2010-04-21 17:45 snapshot-21042010-2
    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep testpool1
    testpool1@snapshot-21042010-2     18K      -    22K  -


Удаленное управление снапшотами

Для управления снапшотами с другой машины можно использовать ssh или NFS.

Экспортируем ZFS-раздел по NFS:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs set sharenfs=on testpool1

Монтируем данный NFS раздел с другой машины (в примере используем в качестве
имени хоста NFS-клиента hivemind):

    jmoekamp@hivemind:~$ pfexec mount 192.168.2.123:/testpool1 /mnt
    jmoekamp@hivemind:~$ cd /mnt
    jmoekamp@hivemind:/mnt$ cd .zfs
    jmoekamp@hivemind:/mnt/.zfs$ ls
    shares    snapshot
    jmoekamp@hivemind:/mnt/.zfs$ cd snapshot
    jmoekamp@hivemind:/mnt/.zfs/snapshot$ ls
    snapshot-21042010-2

Как и в случае с локальной системой, манипуляции с поддиректориями в
директории .zfs в примонтированном NFS-разделе приводят к манипуляции со
снапшотами на другой машине.

Предварительно предоставляем пользователю jmoekamp право создавать,
переименовывать и удалять снапшоты на базовом сервере opensolaris1:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs allow -u jmoekamp create,destroy,mount,snapshot testpool1

Пробуем создать снапшот, примонтировав NFS под пользователем jmoekamp:

    jmoekamp@hivemind:/mnt/.zfs/snapshot$ mkdir snapshot-remote-21042010

Проверяем: 

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep "testpool1"
    testpool1@snapshot-21042010-2         18K      -    22K  -
    testpool1@snapshot-remote-21042010      0      -    22K  -

Пробуем переименовать:

    jmoekamp@hivemind:/mnt/.zfs/snapshot$ mv snapshot-remote-21042010 snapshot-remote-21042010-2

Проверяем, что это не обман зрения и  все действительно работает:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep "testpool1"
    testpool1@snapshot-21042010-2           18K      -    22K  -
    testpool1@snapshot-remote-21042010-2      0      -    22K  -

Пробуем удалить снапшот:

    jmoekamp@hivemind:/mnt/.zfs/snapshot$ rmdir snapshot-remote-21042010-2/

Проверяем на сервере:

    jmoekamp@opensolaris1:/testpool1/.zfs/snapshot# zfs list -t snapshot | grep "testpool1"
    testpool1@snapshot-21042010-2     18K      -    22K  -
 
27.04.2010 , Источник: http://www.c0t0d0s0.org/archives/65...
Раздел:    Корень / Администратору / Система / Диски и файлы / Файловые системы

Обсуждение [ RSS ]
 
  • 1.1, m0ps, 12:01, 28/04/2010 [ответить] [смотреть все]
  • +/
    спасибо за перевод.
     
  • 1.2, Аноним, 14:58, 28/04/2010 [ответить] [смотреть все]
  • +/
    немного по-читерски выглядит ... весь текст скрыт [показать]
     
  • 1.3, аноним, 11:38, 29/04/2010 [ответить] [смотреть все]  
  • +/
    круто
     
  • 1.4, аноним, 11:45, 29/04/2010 [ответить] [смотреть все]  
  • +1 +/
    Как-то не выглядит "чрезвычайно удобным"
     
  • 1.5, hhg, 18:38, 29/04/2010 [ответить] [смотреть все]  
  • +/
    забавно. можно лозунг вывешивать: перед началом "революции" в проекте - создай директорию в бэкапе. и всё будет.
     
  • 1.6, Almetico, 19:37, 06/05/2010 [ответить] [смотреть все]  
  • +/
    В BTRFS тоже так можно.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList