Новости из Блогов Создание и обслуживание разделов с файловой системой Btrfs

Discussion in 'Мировые новости. Обсуждения.' started by d3l3t3, 26 Jul 2012.

  1. d3l3t3

    d3l3t3 Banned

    Joined:
    3 Dec 2010
    Messages:
    1,771
    Likes Received:
    98
    Reputations:
    10
    Создание и обслуживание разделов с файловой системой Btrfs


    Для примера создадим Btrfs-раздел размером 1 Тб, включающий в себя два диска по
    500 Гб (/dev/sdb и /dev/sdc):

    Code:
       # mkfs.btrfs /dev/sdb /dev/sdc
    
       adding device /dev/sdc id 2
       fs created label (null) on /dev/sdb
       nodesize 4096 leafsize 4096 sectorsize 4096 size 10.00GB
    Для проверки, что файловая система охватывает два диска выполним:

    Code:
       # btrfs filesystem show /dev/sdb
    
       Label: none  uuid: b4f5c9a8-d8ec-4a5b-84f0-2b8c8d18b257
       Total devices 2 FS bytes used 28.00KB
       devid    1 size 5.00GB used 1.53GB path /dev/sdb
       devid    2 size 5.00GB used 1.51GB path /dev/sdc
    Смонтируем созданную ФС:

    Code:
       # mount /dev/sdb /mnt
    монтировать следует первое устройство /dev/sdb, при попытке дополнительно
    смонтировать /dev/sdc будет выдано предупреждение:

    Code:
       # mount /dev/sdc /mnt
    
       mount: /dev/sdc already mounted or /mnt busy
       mount: according to mtab, /dev/sdb is already mounted on /mnt
    Просмотрим информацию о смонтированном разделе:

    Code:
      # df -h /mnt
    
       Filesystem      Size  Used Avail Use% Mounted on
       /dev/sdb         10G   56K  8.0G   1% /mnt
    
       # btrfs filesystem df /mnt
    
       Data, RAID0: total=1.00GB, used=0.00
       Data: total=8.00MB, used=0.00
       System, RAID1: total=8.00MB, used=4.00KB
       System: total=4.00MB, used=0.00
       Metadata, RAID1: total=1.00GB, used=24.00KB
       Metadata: total=8.00MB, used=0.00

    Создадим подраздел с именем subbasefoo для хранения файлов и директорий:

    Code:
       # btrfs subvolume create subbasefoo
    
       Create subvolume './subbasefoo'
    Поместим в данный подраздел три пустых файла foobar1, foobar2 и foobar3:

    Code:
       # touch foobar1 foobar2 foobar3
    Создадим снапшот с именем subbasefoo-20120501 созданного ранее подраздела и
    проверим, что файлы в нём находятся в неизменном виде:

    Code:
       # btrfs subvolume snapshot subbasefoo/ subbasefoo-20120501
    
       Create a snapshot of 'subbasefoo/' in './subbasefoo-20120501'
    
       # ls -R
       subbasefoo  subbasefoo-20120501
       ./subbasefoo:
       foobar1  foobar2  foobar3
       ./subbasefoo-20120501:
       foobar1  foobar2  foobar3
    Удалим файлы в основном подразделе и убедимся, что они сохранились в снапшоте
    (занимаемое файлами дисковое пространство освободится только после удаления снапшота).

    По сути снапшот является тем же подразделом, поэтому к нему применимы все
    команды для подразделов, в том числе создание новых снапшотов. Для
    использования возможности восстановления состояния подраздела рекомендуется
    создавать новые снапшоты при проведении в них экспериментов - если рузультат
    оказался удачен, старый снапшот можно удалить, а если нет - удалить
    экспериментальный снапшот.


    Интересной особенностью является возможность клонирования файлов без
    расходования дополнительного дискового пространства на каждую копию (хранится
    только один экземпляр данных). Для подобного клонирования в процессе
    копирования утилитой cp следует использовать опцию reflink. Например клонируем
    файл rantest.tst, размером 200 Мб:

    Code:
       # df -h .
       Filesystem      Size  Used Avail Use% Mounted on
       -                10G  201M  7.8G   3% /mnt/btrfs/subbasefoo
    
       # cp --reflink rantest.tst clonetest.tst
       # df -h .
    
       Filesystem      Size  Used Avail Use% Mounted on
       -                10G  201M  7.8G   3% /mnt/btrfs/subbasefoo
    25.07.2012
    http://www.opennet.ru/tips/2702_btrfs_mount_snapshot_linux.shtml
     
Loading...