GlusterFS — petabyte storage

Недавно возникла необходимость построить отказоустойчивое хранилище с полезным объемом в 1 Пб. Так как обычная репликация требует x2 по объему, хотелось использовать erasure coding который позволяет получить как минимум 2/3 от сырого пространства. Конечно, EC не такой быстрый как обычная репликация, но в данном конкретном случае он полностью удовлетворял требования к производительности.
Все это хорошо думал я, но у меня не было ранее опыта построения хранилищ такого объема. Более того, я не видел статистики подобного характера по GlusterFS. Закрались сомнения, можно ли используя EC построить хранилище на 1Пб в принципе.
Я решил написать на рассылку GlusterFS и узнать о размерах хранилищ с EC.

Читать дальше

QEMU-KVM и NUMA-архитектура

Кратко о NUMA-архитектуре.

Представьте себе довольно типичный двух-процессорный сервер. Можете представить четырех-процессорный, это не принципиально, главное что бы соккетов было больше одного, иначе эта статья для вас не актуальна)

Так вот, у каждого процессора(не ядра а именно процессора), есть встроенный контроллер памяти(либо он совсем близко) и подключенный через него банк памяти к которому у этого процессора есть максимально быстрый доступ. Это собственно и есть NUMA-нода №0.

У других процессоров(при наличии таковых) так же есть встроенный контроллер и «локальная» память и это такие же NUMA-ноды №N в рамках одного сервера.
Проблема NUMA в том, что доступ процессора из ноды 0 к памяти ноды 1 в два раза медленнее чем к своей, локальной памяти.

Так же, обращаясь к памяти из другой ноды, процессор выполняет в два раза больше тактов чем обращаясь к своей памяти.
Кроме этого, общий кеш процессора 2-го и 3-го уровней, становится менее эффективен если процесс выполняется на процессорах нескольких нод.

В общем, в идеале, каждый из процессов должен выполняться в рамках одной какой то ноды и не «прыгать» между ними.

Читать дальше

Воскрешение заскучавшего бложека

Больше года прошло с момента как я сменил работу. С тех пор не строчки в бложек…:( И хотя есть куча интересного материала, времени на его публикацию попросту нет.
Писать статейки для samag я уже точно не буду. Это требует огромных временных затрат, да и уровень журнальных публикаций я уже перерос. По этому, будущие посты будут скорее всего краткими, без вылизанных фраз и кучи воды 😉 Тем самым, я надеюсь, смогу регулярно о чем то писать не тратя на это много времени.

Читать дальше

Власть над конфигурацией. Etckeeper и Git

Наверное каждый слышал о рекомендации выполнять резервное копирование конфигурационных файлов перед их редактированием. Так же бывают случаи когда обновление пакета или системы в целом приводит к перезаписи файлов с настройками в результате чего что то перестает работать. Если вам известны подобные проблемы то продукт etckeeper то что нужно.

Как это работает

В основе всего лежит система контроля версий — Concurrent Versions System (CVS). Так как /etc традиционно используется для хранения конфигурационных файлов, преимущественно текстовых, CVS здесь подходит как нельзя лучше. Но даже учитывая простоту использования современных систем версионного контроля они имеют тот же недостаток, что и резервное копирование конфигов в ручную. Администраторы попросту забывают или ленятся ими пользоваться будучи уверенными, что все пройдет гладко. По этому, я рекомендую поставить себе на вооружение маленькую но полезнейшую утилиту etckeeper которая будет это делать за вас.

Суть утилиты заключается в том, что бы автоматически делать резервное копирование состояния /etc до и после установки любых приложений а так же раз в сутки на всякий случай. В качестве хранилища, могут использоваться на выбор одна из нескольких CVS. Наиболее популярные из них это Bazaar и Git. В Ubuntu обычно по умолчанию используется первая а RHEL-подобных дистрибутивах в основном Git, хотя, это не принципиально.

Читать дальше

GlusterFS — новый класс хранилищ данных

Высокопроизводительные и надежные хранилища данных были и остаются дорогим удовольствием, которое не всем по карману. Полноценное использование технологий виртуализации зачастую невозможно из-за отсутствия именно этого компонента инфраструктуры. И здесь кстати мнения расходятся. Кто то считает, что замены промышленным СХД быть не может. Я же уверен, что существуют значительно более дешевые альтернативы. Более того, мне кажется, что за подобными решениями будущее и современная тенденция, кажется, к этому все и склоняет. Ниже я расскажу и покажу что из себя представляет одна из альтернатив под названием Glus­terFS — а выбор, естественно, за вами.

Glus­terFS часть 1. Что за зверь?
Glus­terFS часть 2. Архитектура
Glus­terFS часть 3. Установка
Glus­terFS часть 4. Типы томов
Glus­terFS часть 5. Создание томов
Glus­terFS часть 6. Монтирование томов
Glus­terFS часть 7. Glus­terFS и oVirt
Glus­terFS часть 8. Тонкая настройка
Glus­terFS часть 9. Квоты

Материалы опубликованы в журнале «Системный администратор»

Читать дальше

Glus­terFS часть 9. Квоты

GlusterFS. Все статьи цикла

Еще одна интересная возможность которая очень полезна в облачной среде, где одним томом может пользоваться множество пользователей.

Читать дальше

Glus­terFS часть 8. Тонкая настройка

GlusterFS. Все статьи цикла

При создании нового тома, в рабочей директории по умолчанию (/var/lib/glusterd/vols) создается поддиректория с именем соответствующим названию тома. В этом каталоге размещается вся служебная информация о конкретном томе среди которой несколько файлов с расширением *.vol. Главный из них это trusted-<имя-тома>-fuse.vol, он описывает общие параметры тома; информацию о серверах, топологию репликации, и некоторые общие параметры используемых трансляторов. В файлах <имя-тома>-<имя-сервера>-<имя-каталога>.vol описываются параметры трансляторов серверов.

Читать дальше

Glus­terFS часть 7. Glus­terFS и oVirt

GlusterFS. Все статьи цикла

Платформе виртуализации oVirt была посвящена большая статья в моем блоге. Здесь же мы рассмотрим вариант когда в роли узлов хранения выступают вычислительные узлы oVirt(Nodes). Такой сценарий полностью поддерживается. Более того, управлять томами на вычислительных узлах можно прямо в интерфейсе oVirt без погружения в консоль.

Читать дальше

Glus­terFS часть 6. Монтирование томов

GlusterFS. Все статьи цикла

Наиболее популярные средства для доступа к Gluster-тому это NFS и собственный клиент(Gluster Native Client)

Подключить том по NFS можно без какой либо подготовки системы:

mount gl01:/<имя_тома> /<каталог_монтирования>

В таком случае, сервис Gluster на узлах хранения подгрузит соответствующий транслятор и будет вести себя как NFS-сервер третей версии.

А вот что бы пользоваться клиентом, придется предварительно его установить:

на Ubuntu:

apt-get install glusterfs-client

 на CentOS:

yum -y install glusterfs glusterfs-fuse

Читать дальше

Glus­terFS часть 5. Создание томов

GlusterFS. Все статьи цикла

Может показаться, что управление GlusterFS — нетривиальная задача, но на практике все очень просто и практически интуитивно.

Прежде чем создать распределенный по нескольким узлам том, необходимо объединить серверы в доверенный пул.

Если у вас два сервера, например gl01 и gl02, то на первом выполняем следующую команду;

gluster peer probe gl02 

peer probe: success.

 Если серверов больше, то тоже самое выполняем с остальными.

Читать дальше