18
апреля

Отказоустойчивость Mysql master-master на основе Keepalived



Keepalived позволяет выполнять балансировку трафика и повышает отказоустойчивость за счет виртуального IP на основе протокола VRRP. Для нашей конфигурации мы не будем использовать балансировку трафика, а только настроем виртуальный IP для двух Mysql серверов, работающих в режиме master-master.

Имеем следующие исходные данные:

10.1.11.11 — виртуальный ip, на который маршрутизируются mysql соединения
10.1.11.10 — mysql сервер test1
10.1.11.9 — mysql сервер test2 Далее…

22
февраля

Создание rpm пакета из исходников



Способ установки пакетов из исходников при помощи make install имеет несколько недостатков, а именно это позднее мешает обновлениям, засоряет систему, усложняет контроль версий ПО и т.д. В многих дистрибутивах линукс для управления ПО используется RPM (Red Hat Package Manager), который позволяет устанавливать, удалять и обновлять программное обеспечение.

В этой статье мы рассмотрим способ сборки rpm пакетов из исходников. Сборку пакета будем производить в дистрибутиве RHEL6, а в качестве исходников использовать keepalived-1.2.15.tar.gz Далее…

24
января

Временное клонирование виртуальной машины в KVM



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

Предположим, что у нас есть созданная виртуальная машина в KVM на основе LVM. Для создания временной резервной копии нам необходимо выполнить следующие действия:
— остановить виртуальную машину
— сделать снепшот lvm
— сделать xml-дамп виртуальной машины
— отредактировать конфигурацию для новой виртуальной машины
— запустить машину со снепшота
Далее…

5
января

Настройка локального репозитория yum RedHat



YUM (Yellow dog Updater, Modified) — открытый консольный менеджер RPM-пакетов. Yum корректно обрабатывает зависимости и обеспечивает работу с несколькими репозиториями. Кроме того, он поддерживает установку пакетов группами — можно дать утилите задание обработать определенную группу приложений и она установит все приложения данной группы. Это существенно упрощает процедуры в случае управления многими машинами.

Yum создан для решения следующих задач:

— Поиск пакетов в репозиториях
— Установка пакетов из репозиториев
— Установка пакетов из .rpm файлов, с разрешением зависимостей с помощью репозиториев
— Обновление версий отдельных пакетов или всей системы
— Удаление ненужных пакетов или приложений из системы

Фактически, yum представляет собой оболочку для rpm обеспечивающую работу с репозиториями.
Далее…

22
декабря

Настройка bridge over bonding



Сетевой мост, бридж (с англ. bridge) — это сетевое устройство второго уровня модели OSI, предназначенное для объединения сегментов компьютерной сети в единую сеть. Сетевой мост принимает решение о переадресации трафика на помощью таблицы MAC адресов, которую он строит на основании подключенных хостов к каждой сети. Программный сетевой мост может использоваться в линукc системе для эмуляции аппаратного сетевого моста, например, для одновременного использования сетевой карты системой и виртуальными приложениями.

Настройку сетевого моста поверх агрегации каналов будем производить на системе с RedHat 6.5

Наша конфигурационная схема будет иметь следующий вид: Далее…

14
декабря

Уменьшение размера Volume group LVM



Менеджер логических томов (Logical Volume Manager), он же LVM — предоставляет собой дополнительный уровень абстракции между физическими/логическими дисками и файловой системой. LVM увеличивает гибкость файловой системы, позволяет изменять размеры логических томов, переносить данные между дисками «на лету», делать снимки дисков и т.д.

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

PV, Physical volume, физический том. Обычно это раздел на диске или весь диск. В том числе, устройства программного и аппаратного RAID (которые уже могут включать в себя несколько физических дисков). Физические тома входят в состав группы томов. Далее…

30
ноября

Настройка bonding в Linux



Для обеспечения отказоустойчивости и повышения пропускной способности сетевых интерфейсов сервера используется агрегация линков, так называемый bonding. Эта технология позволяет объединить два или более физических сетевых интерфейсов в один виртуальный.

Настройку бонда произведем на примере RedHat 6.5. Переходим в директорию /etc/sysconfig/network-scripts/ и создаем файл ifcfg-bond0 c соответствующими настройками: Далее…

1
октября

TmpFS в FreeBSD



TmpFS — это быстрая и эффективная файловая система в ОЗУ, а не на ПЗУ, как прочие ФС. Предназначена для временного хранения файлов с оптимальным расходом памяти и скоростными характеристиками. Обычно используется при монтировании в каталог /tmp, в котором много постоянно меняющихся временных мелких файлов, поэтому может быть целесообразно размещать их в памяти.

TmpFS очень подобна RAM-диску, тем что данные находятся в оперативной памяти. При работе используется виртуальную память (virtual memory, VM), т.е. RAM и SWAP (при потребности подключается пространство подкачки).

Ранее я описывал как создать ФС в памяти с помощью драйвера md (Memory «disks») и хотелось бы упомянуть о нескольких отличиях MFS от TmpFS. Для MFS (Memory File System) нужно создание устройства памяти, т.е. блочного устройства, которое перед использованием нужно отформатировать для определенной файловой системы (например, UFS), которая обычно используется для применения на ПЗУ со своими опциями ориентированными на жесткие диски (например, настройки фрагментации, журналирования, дубликации и пр. операции с секторами/цилиндрами/головками). Поэтому при использовании md возникает дополнительная нагрузка на систему при работе с данными на этом блочном устройстве. TmpFS блочным устройством не является и ее можно использовать сразу после монтирования. MFS при монтировании резервирует и использует определенный объем ОЗУ, указанный при создании диска памяти (место под нее будет выделено из общего пула памяти и при необходимости может перемещаться в область подкачки), а TmpFS может динамически использовать свободную память. Далее…

11
сентября

pg_dumpall



Наименование

pg_dumpall — извлекает кластер баз данных PostgreSQL в скрипт

Синтаксис

pg_dumpall [connection-option…] [option…]

Описание

pg_dumpall это утилита для записи вывода («сброса») всех баз данных кластера PostgreSQL в один файл сценариев. Этот скрипт содержит SQL-команды, которые могут быть использованы как входные данные psql для восстановления баз данных. Это происходит путем вызова pg_dump для каждой базы данных в кластере. pg_dumpall также делает резервную копию глобальных объектов, которые являются общими для всех баз данных. (pg_dump не сохраняет эти объекты). На данных момент это включает информацию о базе данных пользователей и групп, пространствах таблиц и свойства, такие как права доступа к базам данных в общем.

Поскольку pg_dumpall читает таблицы из всех баз данных, то скорее всего вам придется подключаться в качестве суперпользователя базы данных для получения полного дампа. Также вам будут нужны права суперпользователя для выполнения сохраненного скрипта, чтобы была возможность добавлять пользователей и группы и создавать базы данных.

SQL-скрипт будет писаться в стандартный вывод. Используйте опцию [-f|file] или операторы командного интерпретатора для перенаправления его в файл. Далее…

1
августа

pg_restore



Наименование
pg_restore — восстанавливает базу данных PostgreSQL из архивного файла созданного с помощью pg_dump

Синтаксис
pg_restore [connection-option…] [option…] [filename]

Описание
pg_restore — это утилита для восстановления базы данных PostgreSQL из архива созданного pg_dump-ом в одном из не-текстовых форматов. Она будет издавать команды необходимые для воссоздания состояния базы данных на то время, когда он был сохранен. Архивные файлы позволяют также pg_restore выбирать что восстановить или даже изменить прежний порядок пунктов восстановления. Архивные файлы предназначены для переноса через архитектуры.

pg_restore может работать в двух режимах. Если название базы данных задано, то pg_restore подключается к этой базе данных и восстанавливает содержимое архива напрямую в базу данных. В противном случае, скрипт, содержащий SQL-команды, необходимый для воссоздания базы данных создает и записывается в файл или на стандартный вывод. Этот скрипт вывода равноценный простому текстовому формату вывода pg_dump. Некоторые из опций управления выводом поэтому аналогичны опциям для pg_dump.

Очевидно, что pg_restore не может восстановить информацию, которая не присутствует в архивном файле. Для примера, если архив был сделан используя опцию «dump data as INSERT commands», то pg_restore не сможет загружать данные, используя команду COPY. Далее…

20
июля

Использование Vim в повседневной работе



В данной заметке освещено несколько очень полезных возможностей редактора Vim для быстрой и удобной работы в нем.

«Вечная» отмена изменений

Начиная с версии 7.3. стала доступной так называемая «вечная» отмена изменений (undo-persistence). После включения данной функции все изменения, которые производились в документе, можно откатить даже после сохранения и закрытия этого файла. История изменений автоматически сохраняется в отдельном скрытом файле с расширением «.un~» в той же директории, где находится редактируемый документ. Либо в отдельной директории, которую можно задать в настройках; тогда название файла будет состоять из пути к редактируемому файлу, используя в качестве разделителя символ «%» вместо «/». Для включения всего этого пропишем в vimrc:

set undofile #включить "вечную" отмену изменений
set undodir=~/.vim/undo/  #директория для файлов с историей изменений 

Vim никогда не удаляет файлы с историей, поэтому в случае надобности это нужно делать самостоятельно, как и в случае с файлами резервных копий документа, если включена опция «set backup».

Режим «вклейки»

Не менее полезным будет познакомиться с так называемым режимом «вклейки», который включается командой «set paste». Это полезно использовать в терминале, когда нужно скопировать некоторый текст с другого окна и вставить в Vim во избежание непредвиденных эффектов. Vim с GUI (графическим интерфейсом) может различать вставляемый текст и обычно сделает это правильно без опции ‘paste’. Далее…

11
июля

Проверка орфографии в Vim



Начиная с версии 7.0 в редакторе Vim появилась встроенная проверка орфографии, что часто бывает очень нужным и полезным. Например, если Vim является редактором писем в почтовом клиенте, да и вообще в работе с любым текстовым файлом.

По умолчанию при запуске Vim проверка орфографии выключена, т.е. установлено «setlocal nospell» или «setlocal spell spelllang=», что конечно же можно изменить, задав нужные настройки в файле конфигурации vimrc. Удобно будет создать всплывающее меню для переключения/выключения проверки орфографии конкретных языков с помощью возможности биндинга клавиш, например, используя и для управления выбором в vimrc прописываем:

set wildmenu
set wcm=
menu SpellLang.RU_EN  :setlocal spell spelllang=ru,en
menu SpellLang.off :setlocal nospell
menu SpellLang.RU :setlocal spell spelllang=ru
menu SpellLang.EN :setlocal spell spelllang=en
map  :emenu SpellLang.

Проверяемый язык задается аббревиатурой и указанием региона через нижнее подчеркивание (например, ru_ru, ru_yo, en_us, en_au), если регион не указан, то используются все (например, ru, en). Также можно одновременно указать несколько языков через запятую, для проверки многоязычного документа. Далее…

8
июля

pg_dump



Наименование
pg_dump — извлекает базу данных PostgreSQL в скриптовый или архивный файл

Синтаксис
pg_dump [connection-option…] [option…] [dbname]

Описание
pg_dump — это утилита для резервного копирования базы данных PostgreSQL. Она создает непротиворечивую резервную копию базы даже если она используется в это время. pg_dump не блокирует другие пользовательские подключения к базе данных (чтения и записи).
Дампы могут быть записаны в формате скрипта или файла архива. Скриптовые дампы — это простые текстовые файлы, содержащие набор SQL команд, требуемых для восстановления базы данных на период времени, когда они были сохранены. Для восстановления с такого файла сценариев его содержимое перенаправляют в psql. Скриптовые файлы могут быть использованы для восстановления базы данных даже на других машинах и других архитектурах; с некоторой модификацией, даже на других SQL серверах управления базами данных.
Далее…

26
июня

SQL дамп PostgreSQL



24.1. SQL дамп

Идея этого метода резервного копирования состоит в генерации текстового файла с SQL-командами, при передаче которого обратно на сервер возможно воссоздать базу данных в том же состоянии, в котором она была во время снятия дампа. PostgreSQL предоставляет для этой цели утилиту pg_dump. Основное использование этой команды следующее:

pg_dump dbname > outfile 

Как видно, pg_dump пишет результат выполнения в стандартный вывод (прим. на экран). Ниже будет описано, как это может быть использовано.
pg_dump — это входящее в комплект поставки PostgreSQL клиентское приложение (тем не менее чрезвычайно функциональное). Это средство может выполнять процедуру резервного копирования с любого удаленного хоста, имея соответствующий доступ к базе данных. Но следует помнить, что pg_dump не работает без соответствующего доступа. На практике это должен быть доступ на чтение всех таблиц, дамп которых нужно сделать, поэтому почти всегда утилита выполняется от суперпользователя.

Для определения с каким сервером управления базами данных должен работать pg_dump используются опции командной строки -h host и -p port. По умолчанию в качестве host выступает сервер на котором запускается pg_dump или то, что задано переменной окружения PGHOST. Далее…

6
июня

Настройка потоковой репликации в PostgreSQL 9



В версии PostgreSQL 8.3 и позже уже был доступен Warm Standby (теплый резерв), использующий PITR (Point-In-Time Recovery, появившийся в 8.0) также называемый «log shipping» (пересылка логов), когда транзакционные логи асинхронно копировались с ведущего узла и сохранялись на ведомом, а затем сразу проигрывались/применялись. Таким образом всегда была копия ведущего сервера при его останове, но пользоваться при Warm Standby ведомым сервером нельзя и он постоянно находился в режиме восстановления (in «recovery mode»).

Hot Standby (горячий резерв) идентичен Warm Standby, но ведомый сервер стал доступен для чтения (read-only), что является огромным преимуществом и дает возможность реализовать балансировку нагрузки запросов от приложения, при этом не оказывая никакой нагрузки на ведущий сервер. При данном способе транзакционные логи (по умолчанию размером 16MB) копируются через сеть в требуемое место (например, с помощью SFTP), а после этого происходит запись/обновление информации в базе на ведомом сервере. Конечно же, выполнение всех этих действий дает некоторые задержки актуализации данных на подчиненном сервере. Далее…

Страница 1 из 3123