Block-level compression in Linux. Pro et contra

Preview:

Citation preview

Одиннадцатая независимая научно-практическая конференция «Разработка ПО 2015»22 - 24 октября, Москва

К.Кринкин, Н.Плохой

Сжатие данных на блочном уровне в Linux”За и против”

СПбГЭТУ “ЛЭТИ”

2

Мотивация● большой размер файлов с “сырыми“ данными

● требуется on-line сжатие без потерь

● необходима независимость от ФС

Тестовый набор данных: результаты медицинского 3D сканирования

Сценарий: однократная запись, множественное чтение

3

Задачи● Оценить возможности для компрессии

блочного уровня в Linux

● Качественно сравнить file-level и block-level сжатие

● Подобрать алгоритмы сжатия блоков

● Разработать схему трансляции

4

Блочный ввод-вывод в Linux

(с) www.thomas-krenn.com

ФС

DM

BLK-IO

BLK-DEVS

5

Существующие работы

● Th. Makatos et al. ZBD – compressed block device, 2010-2012

● Y. Klonatos et al. Azor (HDD/SDD compression scheme), 2011

● Y. Cao et al. Block level memory compression, 2015

6

Проблемы сжатия блоков

● Разный размер после сжатия

● Не все блоки нужно сжимать

● Требуется уровень трансляции

● Увеличение количества ввода-вывода (read-before-write)

● Фрагментация данных на диске

7

Архитектура I/O

App

FS

Buffers cache

Block compression

Ph.disk

user

kernel

© см. [1]

Log->ph read XTload

balancedecomp

Read

load balance

compressMap

and store XTWrite ph

Write

8

Трансляция блоков: extents

1st header

free offset blk num blk sz comp. data

free space

next blk

blk num blk sz comp. datanext blk

blk num. . .

9

Трансляция блоков: упаковка

Ph.disk

1/4 1/4 1/4 1/4 1/2 1/2 1/1

meta

физические блоки

упаковка

логические блоки

10

Координатное пространство

NL → {Nph,P}

Где:– NL – логический номер блока

– Nph – физический номер блока

– P – позиция внутри физического блока

Nph

0 1 2 3

NL

P:

11

Статическая разметка диска

Ph.diskсвободно

занято

метаданные

. . .

блоки х1 блоки х2 блоки х4 фикс. размер

12

Динамическая разметка диска*

Ph.disk

свободно

x4 метаданные

. . .

фикс. размер

x2

x1

13

Device Mapper

dm-device

Logical VolumeBIOs

Logical/Physical Volume

BIOs

BIOs

BIOs

14

Device mapper iface

dm_target: dm_dev

/device-mapper.h#L124

15

Компрессоры: степень сжатия

16

Компрессоры: время сжатия

17

Подключение компрессоров

● in kernel

● Shared memory + User space daemon

18

In-kernel compressor

App

FS

Buffers cache

Block compression

Ph.disk

user

kernel

compression module

compression buffer

19

User space compressor

App

FS

Buffers cache

Block compression

Ph.disk

user

kernel

compression daemon

comp. buffer

comp xcomp xcomp x

Shared memory Pluggablecompressors

20

Сжатие блоков: “за” и “против”● За:

– прозрачное увеличение дискового пространства

– лучшая (по сравнению с ФС) гранулярность объектов сжатия

– скорость доступа*

● Против:– фрагментация*

– затраты на хранение мета информации

– отсутствие интеграции с ФС

21

Развитие● Балансировка нагрузки

● Тестирование производительности (HDD, SSD)

● Эффективное кэширование

● Использование аппаратного ускорения сжатия

22

Источники[1] Y. Klonatos et al. Transparent Online Storage Compression at the Block-Level. ACM Trans. Storage 8, 2, Article 5 (May 2012)

[2] ZBD: Using Transparent Compression at the Block Level to Increase Storage Space Efficiency // 2010 International Workshop on Storage Network Architecture and Parallel I/Os

● [3] Y. Cao Flexible Memory: A Novel Main Memory Architecture with Block-level Memory Compression // Networking, Architecture and Storage (NAS), 2015 IEEE International Conference on

[4] www.thomas-krenn.com

23

Вопросы?

Кирилл Кринкинkirill.krinkin@gmail.com

24

запасные слайды

25

Intel DEFLATEVinodh Gopal et al. High Performance DEFLATE Compression on Intel ® Architecture Processors (igzip library) Nov 2011

26

Возможности для компрессии

27

Уровень BIOs

Recommended