Задание ITFB

Задание ITFB

Andrey Serha

1. Репликация БД. Процесс настройки и запуск

Репликация БД - распространение изменений данных с главного сервера БД(мастера) на один или несколько зависимых серверов(реплики).

Настройка главного сервера БД:
Редактируем файл файл my.cnf, в секцию [mysqld] добавить строки:

server-id = [master server id]
log-bin = mysql-bin
log-bin-index = mysql-bin.index
log-error = mysql-bin.err
relay-log = relay-bin
relay-log-info-file = relay-bin.info
relay-log-index = relay-bin.index
expire_logs_days=7
binlog-do-db = [dbname]

Настройка реплики:
Редактируем файл файл my.cnf, в секцию [mysqld] добавить строки:

server-id = [slave server id]
master-host = master
master-user = replication
master-password = [password]
master-port = 3306
relay-log = relay-bin
relay-log-info-file = relay-log.info
relay-log-index = relay-log.index
replicate-do-db = [dbname]

Создаем пользователя для репликации

mysql@master> GRANT replication slave ON "testdb".* TO "replication"@"10.10.1.101" IDENTIFIED BY "[password]";

Блокируем реплицируемые базы на главном сервере от изменения данных:

mysql@master> FLUSH TABLES WITH READ LOCK;
mysql@master> SET GLOBAL read_only = ON;


Для разблокировки используется команда:

mysql@master> SET GLOBAL read_only = OFF;

Сделаем резервные копии нужных баз данных на главном сервере

root@master# tar -czf mysqldir.tar.gz /var/lib/mysql/[dbname]
root@master# mysqlamdin -u root -p shutdown

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

root@replica# mysqlamdin -u root -p shutdown
root@replica# cd /var/lib/mysql
root@replica# tar -xzf mysqldir.tar.gz

Запустим mysql на главном сервере (а затем - на подчиненном, если это необходимо):

root@master# /etc/init.d/mysql start
root@replica# /etc/init.d/mysql start

Проверим работы главного и подчиненного серверов:

mysql@replica> start slave;
mysql@replica> SHOW SLAVE STATUS\G
mysql@master> SHOW MASTER STATUS\G

На подчиненном сервере проверить логи в файле master.info, там должны содержаться запросы на изменение данных в базе. Так этот файл бинарный необходимо сначала преобразовать его в текстовый формат:

root@replica# mysqlbinlog master.info > master_info.sql

Для горячего добавления серверов репликации:

mysql@replica> SHOW SLAVE STATUS\G
mysql@master> SHOW MASTER STATUS\G
mysql@replica-2> CHANGE MASTER TO MASTER_HOST = "master", MASTER_USER ="replication ", MASTER_PASSWORD = "[password] ", MASTER_LOG_FILE ="mysql-bin.000004 ", MASTER_LOG_POS = 155;
mysql@replica-2> START SLAVE;

2. Как установить свою ОС, со своей рабивкой дисков на выделенный сервер в интернете.

Подключаемся к серверу управления VDS с помощью VMware vShere Web Client (VMware vShere Client).
Монтируем образ диска с дистрибутивом ОС. Во время установки разбиваем диск как нужно.

3. Что такое VMware vSphere. Какие в него входят компоненты.

VMware vSphere – это набор продуктов для виртуализации серверов. В него входят гипервизор ESX(i) и инструмент управления VMware vCenter server.

ESX – автономный гипервизор от компании VMWare, который представляет собой операционную систему (с консолью управления), созданную для запуска и управления виртуальными машинами.

ESXi – это ESX без консоли управления. ESXi решает более узкий класс задач, чем ESX.

vCenter Server – сервер управления виртуальной инфраструктурой vSphere: серверами ESX(i), виртуальными сетями и хранилищами.

VMware vSphere Client – бесплатный клиент, который позволяет управлять как отдельным гипервизором ESXi, так и vCenter server.

High Availability (HA) – компонент vSphere, который при выходе из строя какого-либо хоста ESX, перезапускает находившиеся на нем виртуальные машины на другом, работоспособном хосте. То есть, даже если vCenter выйдет из строя, HA будет продолжать работать.


4. Что такое RVM.

RVM – Ruby Version Manager (менеджер управления пакетами в ruby) используется когда требуется запуск нескольких версий ruby на одной машине или же нескольких проектов с разными наборами gem’ов для них(gem – пакет ruby, предоставляющий какую-то функциональность). Похож на virtualenv, если сравнивать с аналогичным приложением для python.

5. Что такое qemu, xen, openvz. В чем отличия.

Qemu – система эмуляции (и виртуализации) компьютера (вычислительной системы с процессором, памятью и периферийными устройствами), поддерживающего различные архитектуры.

Xen – это монитор виртуальных машин (VMM, Virtual Machine Monitor) или гипервизор (hypervisor) с поддержкой паравиртуализации (para-virtualization) для процессоров x86 архитектуры, распространяющийся с открытым исходным кодом (opensource). Xen может организовать совместное безопасное исполнение нескольких виртуальных машин на одной физической системе с производительностью близкой к непосредственной (native). Требуется установка модифицированного ядра ОС.

OpenVZ – технология и программное обеспечение для виртуализации на уровне операционной системы (OS-level virtualization) для ядра Linux. OpenVZ создаёт множество изолированных контейнеров, в которых работают различные процессы операционной системы. Но все контейнеры работают под управлением одного и того же ядра.

Сравнение

Xen – на порядок сложнее и функциональнее, имеет помимо режима паравиртуализации (как openvz) режим полной виртуализации (в т.ч. поддержка соответствующих фич процессоров), есть механизмы переброса железа внутрь виртуалки.

qemu – полная эмуляция процессора (а так же виртуализация через поддержку процессорами), есть вкусности от 'старших братьев' вида миграция запущенной виртуалки по сети, переброса железа (сильно хуже поддержка чем xen/vmware) Можно считать бакэндом, так как GUI в идеалогии не имеет, оно разрабатывается энтузиастами.

OpenVZ – это работа всех машин на одном ядре (патчи к нему так и зовутся openvz), нет виртуализации, максимальная скорость (так как фактически это расширенный chroot с изоляцией). Снапшотов нет (но их реализуют через lvm), миграция есть, есть сброс состояния контейнера на диск и возобновление работы…

6. Синхронизация данных между серверами. Какие есть варианты?

Синхронизацию данных можно реализовать с помощью утилиты rsync либо его модификации Lsyncd(rsync+inotify)

Настройка

Содержимое ~/.lsyncd/lsyncd.config

settings{
logfile  = "/home/mint/.lsyncd/lsyncd.log",
statusFile  = "/home/mint/.lsyncd/lsyncd.status",
nodaemon = false,
maxDelays = 900,
maxProcesses = 6,
}
sync{
  default.rsyncssh,
  source   = "/home/source",
  host    = "root@192.168.5.149",
  targetdir  = "/backup/source",
  rsync={
    _extra = { "-a" }
  }
}

4. Перед запуском тестов синхронизации хост, описанный в lsyncd.config, должен быть доступен по ssh без пароля (по ключам).

5. Тестирование lsyncd с клиента:

lsyncd -nodaemon ~/.lsyncd/lsyncd.config

6. Добавляем строку автозапуска программы:

  lsyncd ~/.lsyncd/lsyncd.config

7. Что такое mdadm. Процедура замены диска. Коротко описать.

mdadm – утилита для управления программными RAID-массивами в Linux.

  1. Помечаем разделы диска как сбойные.
  2. Удаляем сбойный диск из массивов.
  3. Отключаем диск и подключаем новый.
  4. Создаем такую же разметку на диске.
    ( #sfdisk -d /dev/sdX | sfdisk --force /dev/sdY )
  5. Добавляем разделы нового диска в массив.

8. Какой веб сервер подходит лучше для раздачи видео. Почему?

NGINX с nginx-rtmp-module. Легкая настройка. Модуль использует асинхронную однопоточную модель сервера nginx. Это позволяет добиться высокой производительности. Практика показывает, что производительность вещателя обычно упирается в сеть, а не в CPU.

9. Что такое Amazon EC2 и Amazon S3

Amazon Elastic Compute Cloud (EC2) – это облачный сервис, предоставляющий виртуальные сервера (Amazon EC2 Instance), 2 вида хранилищ данных, а так же балансировщик нагрузки (Load Balancer). Это VPS в настоящем облаке, где сервер может легко мигрировать между нодами, а хранилище легко может быть расширено до почти безразмерного.

Amazon Simple Storage Service (S3) – хранилище файлов любого типа, любого объема, с высокой доступностью и отказоустойчивостью. Оно разработано для хранения статического контента, пользовательских данных и бэкапов.




Report Page