Upload
osll
View
695
Download
2
Embed Size (px)
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
24
запасные слайды
25
Intel DEFLATEVinodh Gopal et al. High Performance DEFLATE Compression on Intel ® Architecture Processors (igzip library) Nov 2011
26
Возможности для компрессии
27
Уровень BIOs