The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Малоизвестный, но чрезвычайно удобн..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Малоизвестный, но чрезвычайно удобн..."  +/
Сообщение от auto_tips (ok) on 28-Апр-10, 12:01 
Интересный способ работы со снапшотами 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  -

URL: http://www.c0t0d0s0.org/archives/6515-Interesting-way-to-cre...
Обсуждается: http://www.opennet.dev/tips/info/2360.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от m0ps (ok) on 28-Апр-10, 12:01 
спасибо за перевод.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от Аноним (??) on 28-Апр-10, 14:58 
немного по-читерски выглядит
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от аноним on 29-Апр-10, 11:38 
круто
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +1 +/
Сообщение от аноним on 29-Апр-10, 11:45 
Как-то не выглядит "чрезвычайно удобным"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от hhg (ok) on 29-Апр-10, 18:38 
забавно. можно лозунг вывешивать: перед началом "революции" в проекте - создай директорию в бэкапе. и всё будет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от Almetico on 06-Май-10, 19:37 
В BTRFS тоже так можно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Малоизвестный, но чрезвычайно удобный способ работы со снапш..."  +/
Сообщение от iZEN (ok) on 11-Окт-12, 15:40 
% zfs list -t snapshot -r roxy
NAME                           USED  AVAIL  REFER  MOUNTPOINT
roxy/usr/local@201210101308      1K      -  3,43G  -
roxy/usr/local@201210110640      1K      -  3,43G  -
roxy/var/db/pkg@201210091936  17,8M      -   123M  -
roxy/var/db/pkg@201210100746  17,8M      -   123M  -
roxy/var/db/pkg@201210101308  17,8M      -   123M  -
roxy/var/db/pkg@201210110640  17,8M      -   123M  -
% rm -rf /var/db/pkg/.zfs/snapshot/*
...
rm: /var/db/pkg/.zfs/snapshot/201210110640/xmlto-0.0.25/+DESC: Read-only file system
rm: /var/db/pkg/.zfs/snapshot/201210110640/xmlto-0.0.25/+MTREE_DIRS: Read-only file system
rm: /var/db/pkg/.zfs/snapshot/201210110640/xmlto-0.0.25/+CONTENTS: Read-only file system
rm: /var/db/pkg/.zfs/snapshot/201210110640/xmlto-0.0.25/+COMMENT: Read-only file system
rm: /var/db/pkg/.zfs/snapshot/201210110640/xmlto-0.0.25: Read-only file system
rm: /var/db/pkg/.zfs/snapshot/201210110640: Operation not supported
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Малоизвестный, но чрезвычайно удобный способ работы со снапшота"  +/
Сообщение от ZendV email on 30-Май-14, 13:53 
И это раньше работало? )))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру