Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14

2,514 views

Published on

My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14

Published in: Technology
  • Be the first to comment

My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14

  1. 1. Использование LVM thin provisioning В школе и дома Александр Чистяков, главный инженер Git in Sky, 2014
  2. 2. Зачем? § On-demand blocks allocation: § Старый добрый overselling § «Прозрачное» добавление ресурсов по необходимости § Побочный эффект — возможность создания снэпшотов в «правильном» порядке Использование LVM thin provisioning. 2014
  3. 3. Отсортируем в порядке важности для меня § Побочный эффект — возможность создания снэпшотов в «правильном» порядке § «Прозрачное» добавление ресурсов по необходимости § Старый добрый overselling* * Мы не оверселлим! Использование LVM thin provisioning. 2014
  4. 4. Как снэпшоты работали раньше? Использование LVM thin provisioning. 2014
  5. 5. Как снэпшоты работали раньше? § Доктор, откуда у вас такие картинки? § Это blktrace + iowatcher § По оси X — время, по оси Y — смещение относительно начала диска § Исследуется запуск bonnie++ (последовательная запись, потом перезапись записанного, потом случайное чтение, потом создание большой пачки файлов) Использование LVM thin provisioning. 2014
  6. 6. Как снэпшоты работали раньше? § Алгоритм последовательной записи: § Сначала читаются данные, которые были на разделе исходно § Потом они записываются на отдельный раздел (кстати, он может переполниться) § Потом, наконец, данные записываются куда следует § Вместо одной записи — чтение и две записи Использование LVM thin provisioning. 2014
  7. 7. Как работает без снэпшотов? Использование LVM thin provisioning. 2014
  8. 8. Как организовать LVM thin provisioning? § pvcreate и vgcreate — как обычно § lvcreate --size 1700G --type thin-pool --thinpool thin_pool vg0 § ^ Создаем ThinPoolLV (ThinDataLV + ThinMetaLV) § Можно разбить на два этапа: § lvcreate -n pool0 -L 1600G vg0 § lvcreate -n pool0meta -L 110M vg0 § lvconvert --thinpool vg/pool0 --poolmetadata vg/pool0meta Использование LVM thin provisioning. 2014
  9. 9. Как организовать LVM thin provisioning? § Создание thin provisioned томов: § lvcreate -V300G -T vg0/thin_pool --name var § lvcreate -V100G -T vg0/thin_pool --name home § Создание thin снэпшотов: § lvcreate -s -n home_`date +"%F-%H"` /dev/vg0/home § lvcreate -s -n var_`date +"%F-%H"` /dev/vg0/var Использование LVM thin provisioning. 2014
  10. 10. Как теперь работает снэпшот? § Thin том (thin снэпшот) — это блоки данных и метаданные, описывающие их принадлежность § Одна запись — это (почти) всегда одна запись, если не считать метаданные § Новые данные пишутся последовательно, старые — в зависимости от того, принадлежат или нет они какому- нибудь снэпшоту § ^ Последовательная запись не всегда последовательна § Одновременная запись в два тома — тоже боль Использование LVM thin provisioning. 2014
  11. 11. Совместимость с популярными сборками Linux § OpenSUSE, Gentoo, ArchLinux, ... - ??? § Ubuntu 14.04 — LVM нужной версии, есть пакет thin-provisioning-tools, без которого нельзя грузиться с thin LV и монтировать их через fstab § Ubuntu 12.04 — LVM из бэкпортов, thin-provisioning-tools я собрал статически: § http://ns2.1888.spb.ru/thin-provisioning-tools_0.2.8-1_amd64.deb § Для 14.04 и 12.04 нужны хуки для initramfs: http://goo.gl/2ckrdG Использование LVM thin provisioning. 2014
  12. 12. О чем еще необходимо помнить § Область метаданных может переполниться § Чем больше снэпшотов — тем быстрее заполняется область метаданных § Новые блоки данных заполняются нулями перед их отдачей в thin LV, к счастью, это можно отключить командой § lvchange -Zn vg0/thin_pool (только вот в LVM 2.02.95 такой команды еще нет) Использование LVM thin provisioning. 2014
  13. 13. Выводы: § Пользователи Linux должны страдать § Варианты страдания различаются: § ZFSOnLinux § BTRFS § LVM thin provisioning § Но суть остается неизменной! § man lvmthin — отличное чтение на ночь Использование LVM thin provisioning. 2014
  14. 14. Традиционный слайд § DevOps-40: Надо чаще встречаться! Использование LVM thin provisioning. 2014
  15. 15. С вами был Александр Чистяков, главный инженер Git in Sky alex@gitinsky.com http://gitinsky.com http://meetup.com/DevOps-40 Пожалуйста, ваши вопросы. Спасибо за внимание!

×