The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Использование расширенных возможнос..."
Отправлено auto_tips, 21-Авг-12 18:14 
В заметке представлены примеры использования таких расширенных функций Btrfs как создания отказоустойчивых конфигураций, опции для обеспечения целостности данных, хранение данных в сжатом виде, снапшоты.

Создадим тестовый раздел Btrfs на диске /dev/sdb:

   # mkfs.btrfs /dev/sdb

   adding device /dev/sdb id 2
   fs created label (null) on /dev/sdb
   nodesize 4096 leafsize 4096 sectorsize 4096 size 10.00GB
   Btrfs Btrfs v0.19


Примонтируем созданный раздел:

   # mount /dev/sdb /mnt

Создадим подраздел и скопируем на него тестовые файлы:

   # cd /mnt
   # btrfs subvolume create MYFILES

   # cp myfile* /mnt/MYFILES

   # ls /mnt/MYFILES
   myfile1
   myfile2
   myfile3

Удалим один из файлов:

   # rm /mnt/MYFILES/myfile2

   # ls /mnt/MYFILES
   myfile1
   myfile3

Если файлов очень много, то удалять их командой "rm -rf" достаточно долгий и ресурсоёмкий процесс. В этом случае проще воспользоваться командой удаления подраздела:


   # btrfs subvolume delete MYFILES

При этом важно понимать, что удалить можно только отдельно созданные подразделы. Подраздел, создаваемый по умолчанию при форматировании ФС, удалению не подлежит.


++ Настройка отказоустойчивой конфигурации с зеркалированием на несколько дисков.

Btrfs предоставляет достаточно гибкие средства по зерклированию данных и расширению доступного пространства раздела. Дополнительные диски можно подключить в любое время, расширив таким образом размер ФС или обеспечив отказоустойчивость. По умолчанию при размещении радела на нескольких дисках осуществляется зеркалирование метаданных на двух дисках, но сами данные распределяются по данным дискам без резервирования (размер ФС получается равным суммарному размеру дисков). Если диск один, то  две копии метаданных размещаются на нём.

Добавим в уже созданный раздел дополнительный диск  /dev/sdc, все данные уже сохранённые на первом диске останутся на месте, если не выполнить операцию ребалансировки:


   # btrfs device add /dev/sdc /mnt/btrfs

   # btrfs filesystem show

   Label: none  uuid: b4f5c9a8-d8ec-4a5b-84f0-2b8c8d18b257
    Total devices 2 FS bytes used 200.33MB
    devid    1 size 5.00GB used 5.00GB path /dev/sdb
    devid    2 size 5.00GB used 4.98GB path /dev/sdc


++ Использование RAID

Btrfs имеет встроенную поддержку нескольких уровней RAID (RAID1, RAID5). В отличии от обычных программных и аппаратных RAID, Btrfs оперирует не формированием RAID на уровне дисков, а использует для создания логических RAID разделов распределение chunk-ов, определяющих дисковую область заданного размера (от 256 Мб). Каждый chunk может быть отзеркалирован на несколько дисков или склеен из частей разных дисков. При создании RAID для данных и метаданных могут применяться разные методы хранения, например, для метаданных и служебных структур всегда применяется зеркалирование.

Создать RAID заданного уровня для данных и метаданных можно на этапе создания ФС. Например, создадим RAID1 (зеркало) из двух дисков:

   # mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc

   mkfs.btrfs -m raid1 -d raid1 /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
   Btrfs Btrfs v0.19

После чего подключим ещё два диска и создадим RAID10 (зеркало на двух склеенных дисках):

   # mkfs.btrfs -m raid10 -d raid10 /dev/sdd /dev/sde

   adding device /dev/sde id 2
   fs created label (null) on /dev/sdd
    nodesize 4096 leafsize 4096 sectorsize 4096 size 10.00GB
   Btrfs Btrfs v0.19


Опция "-m" задаёт уровень RAID для метаданных, а "-d" для данных. Например, можно использовать смешанные схемы:


   # mkfs.btrfs -m raid1 -d raid10 /dev/sdf /dev/sdg /dev/sdh /dev/sdi

++ Обеспечение целостности данных.

Btrfs поддерживает несколько встроенных механизмов обеспечения целостности:

* Хранение контрольных сумм для проверки блоков данных и метаданных;

* Изоляция сбоев (отдельное сохранение данных и метаданных с CRC-верификацией);

* Средства выявления повреждений и их автоматической корректировки (проверка по контрольным суммам осуществляется при каждом чтении блока, если выявлено расхождение осуществляется попытка прочитать повреждённый блок с другого диска, после чего осуществляется корректировка повреждённого блока);

* Поддержка операции фоновой перепроверки всего содержимого ФС (вычисляются и сверяются контрольные суммы для всех блоков). Для запуска проверки следует выполнить:

   # btrfs scrub start /mnt/MYFILES

* Перестроение RAID при замене или добавлении новых дисков. Отличительной чертой Btrfs является то, что в перестроении участвуют только занятые блоки, что существенно сокращает время выполнения операции.

* В настоящее время в Btrfs нет встроенной возможности хранения информации в зашифрованном виде, но обеспечить шифрование можно путем создания ФС поверх шифрованных разделов, созданным при помощи подсистем dm_crypt и LUKS.

++ Использование сжатия данных.

Для оптимизации расходования дискового пространства при хранении хорошо сжимаемых данных можно использовать встроенные в Btrfs механизмы сжатия. Поддерживается сжатие методами  Lempel-Ziv-Oberhumer (LZO) или zlib (в разработке поддержка Snappy и LZ4). Включить сжатие можно после создания ФС, на этапе монтирования, при этом сжиматься будут только новые данные.

Монтируем раздел с включением сжатия:

   # mount -o compress=lzo /dev/sdb /mnt/MYFILES

Сжатие можно включить и для отдельного подраздела:

   # btrfs subvolume create /mnt/MYFILES/mysubvol

   # mount -o compress=lzo,subvol=mysubvol /dev/sdb /mnt/MYSUBVOL


++ Снапшоты и клонирование.

В рамках снапшота может быть сделан активный срез состояния ФС в заданный момент времени. В дальнейшем, используя средства миграции данный, сохранённый снапшот можно восстановить на другой машине. Кроме задействования дополнительных метаданных снапшон не приводит к дополнительному расходованию дискового пространства - физически хранится одна копия данных.

Создадим снапшот для ранее созданных данных:

    # ls /mnt/MYFILES
    myfile1
    myfile2

    # btrfs subvolume snapshot /mnt/MYFILES /mnt/SNAPSHOT

    # ls /mnt/SNAPSHOT
    myfile1
    myfile2


Для отдельных фалов можно создавать клоны, которые в отличие от копирования используют один набор блоков на диске:

    # cp --reflink /mnt/MYFILES/myfile1 /mnt/MYFILES/myfile3

    # ls /mnt/MYFILES
    myfile1
    myfile2
    myfile3

++ Средства дефрагментации.

Btrfs поддерживает режим автоматической фоновой дефрагментации, активируемый при помощи опции монтирования "-o autodefrag". Кроме того, дефрагментацию можно запустить вручную:


   # btrfs filesystem defrag /mnt

URL: http://www.oracle.com/technetwork/articles/servers-storage-a...
Обсуждается: https://www.opennet.ru/tips/info/2710.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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