Добавление IDN-доменов в cPanel

IDN (англ. Internationalized Domain Names — Интернационализованные Доменные Имена) — это доменные имена, которые содержат символы национальных алфавитов.

Для того, чтобы добавить IDN-домен в cPanel необходимо перевести такой домен в понятный для браузера и cPanel, то есть в формат punycode. Для этого можно воспользоваться инструментом на сайте http://www.idnstuff.com. Например, домен вида “домен.ру” в формате punycode будет иметь имя вида “xn--d1acufc.xn--p1ag”. Для добавления такого домена достаточно зайти в cPanel -> “Дополнительные домены ” и добавить там домен “xn--d1acufc.xn--p1ag”.

Но, при добавлении нескольких IDN-доменов в cPanel возникает маленькая особенность. Допустим, Вы желаете добавить еще один IDN-домен с именем “домен.рф”. При этом, следует обратить внимание на то, что при создании дополнительных доменов в cPanel автоматически создается ftp-аккаунт с именем пользователя по умолчанию. В случае с доменами “домен.ру” и “домен.рф” имя пользователя в формате punycode будет  “xn--d1acufc”  (имя пользователя одинаково как для томена “домер.ру” так и, для домена “домен.рф”). Таким образом, когда Вы попробуете добавить второй домен вида “домен.рф”, который в формате punycode имеет вид “xn--d1acufc.xn--p1ai”  – он не добавится. В таком случае, достаточно изменить имя пользователя для ftp по умолчанию на имя, которого еще нет в системе.

Теги: ,

Тестирование производительности и стабильности CentOS : Phoronix Test Suite

Для тестирования производительности и стабильности сервера под управление CentOS можно использовать пакет тестов Phoronix Test Suite. Данный пакет содержит огромное количество самых разнообразных тестов, начиная от стресс-теста центрального процессора заканчивая тестами графической подсистемы. Мы же ограничимся описанием установки Phoronix Test Suite и запуском самых необходимых в серверной жизни тестов.

Для установки Phoronix Test Suite необходимо выполнить следующее :

[root@server4 ~]# yum install gcc gcc-c++ make patch php-cli autoconf automake
[root@server4 ~]# wget http://www.phoronix-test-suite.com/download.php?file=phoronix-test-suite-2.4.1
[root@server4 ~]# tar xvfz phoronix-test-suite-2.4.1.tar.gz
[root@server4 ~]# cd phoronix-test-suite
[root@server1 ~]# ./install-sh

Теперь можно посмотреть список всех доступных в Phoronix Test Suite тестов, изобилие которых просто впечатляет :

[root@server4 phoronix-test-suite]# phoronix-test-suite list-tests
========================================
Phoronix Test Suite - Tests
========================================

aio-stress           - AIO-Stress                           [VERIFIED,       FREE]
apache               - Apache Benchmark                     [VERIFIED,       FREE]
battery-power-usage  - Battery Power Usage                  [VERIFIED,       FREE]
blogbench            - BlogBench                            [VERIFIED,       FREE]
bork                 - Bork File Encrypter                  [VERIFIED,       FREE]
build-apache         - Timed Apache Compilation             [VERIFIED,       FREE]
build-imagemagick    - Timed ImageMagick Compilation        [VERIFIED,       FREE]
build-linux-kernel   - Timed Linux Kernel Compilation       [VERIFIED,       FREE]
build-mplayer        - Timed MPlayer Compilation            [VERIFIED,       FREE]
build-mysql          - Timed MySQL Compilation              [VERIFIED,       FREE]
build-php            - Timed PHP Compilation                [VERIFIED,       FREE]
bullet               - Bullet Physics Engine                [VERIFIED,       FREE]
bwfirt               - Bwfirt                               [VERIFIED,       FREE]
byte                 - BYTE Unix Benchmark                  [VERIFIED,       FREE]
c-ray                - C-Ray                                [VERIFIED,       FREE]
cachebench           - CacheBench                           [VERIFIED,       FREE]
compilebench         - Compile Bench                        [VERIFIED,       FREE]
compliance-acpi      - ACPI                                 [VERIFIED,       FREE]
compliance-ogl       - GLEW                                 [VERIFIED,       FREE]
compliance-sensors   - LM Sensors                           [VERIFIED,       FREE]
compress-7zip        - 7-Zip Compression                    [VERIFIED,       FREE]
compress-gzip        - Gzip Compression                     [VERIFIED,       FREE]
compress-lzma        - LZMA Compression                     [VERIFIED,       FREE]
compress-pbzip2      - Parallel BZIP2 Compression           [VERIFIED,       FREE]
crafty               - Crafty                               [VERIFIED,       FREE]
dbench               - Dbench                               [VERIFIED,       FREE]
dcraw                - dcraw                                [VERIFIED,       FREE]
doom3                - Doom 3                               [VERIFIED,     RETAIL]
encode-ape           - Monkey Audio Encoding                [VERIFIED,       FREE]
encode-flac          - FLAC Audio Encoding                  [VERIFIED,       FREE]
encode-mp3           - LAME MP3 Encoding                    [VERIFIED,       FREE]
encode-ogg           - Ogg Encoding                         [VERIFIED,       FREE]
encode-wavpack       - WavPack Audio Encoding               [VERIFIED,       FREE]
espeak               - eSpeak Speech Engine                 [VERIFIED,       FREE]
et                   - Enemy Territory                      [VERIFIED,       FREE]
etqw-demo-iqc        - ET: Quake Wars Image Quality         [VERIFIED,   NON-FREE]
etqw-demo            - ET: Quake Wars Demo                  [VERIFIED,   NON-FREE]
etqw                 - ET: Quake Wars                       [VERIFIED,     RETAIL]
ffmpeg               - FFmpeg                               [VERIFIED,       FREE]
fgl-glxgears         - ATI fgl_glxgears                     [VERIFIED, RESTRICTED]
fhourstones          - Fhourstones                          [VERIFIED,       FREE]
fio                  - Flexible IO Tester                   [VERIFIED,       FREE]
fs-mark              - FS-Mark                              [VERIFIED,       FREE]
gcrypt               - Gcrypt Library                       [VERIFIED,       FREE]
geekbench            - Geekbench                            [VERIFIED,   NON-FREE]
gmpbench             - GMPbench                             [VERIFIED,       FREE]
gnupg                - GnuPG                                [VERIFIED,       FREE]
graphics-magick      - GraphicsMagick                       [VERIFIED,       FREE]
gtkperf              - GtkPerf                              [VERIFIED,       FREE]
hdparm-read          - hdparm Timed Disk Reads              [VERIFIED,       FREE]
himeno               - Himeno Benchmark                     [VERIFIED,       FREE]
hmmer                - Timed HMMer Search                   [VERIFIED,       FREE]
hpcc                 - HPC Challenge                        [VERIFIED,       FREE]
idle-power-usage     - Idle Power Usage                     [VERIFIED,       FREE]
idle                 - Timed Idle                           [VERIFIED,       FREE]
iozone               - IOzone                               [VERIFIED,       FREE]
j2dbench             - Java 2D Microbenchmark               [VERIFIED,       FREE]
java-scimark2        - Java SciMark                         [VERIFIED,       FREE]
jgfxbat              - Java Graphics Basic Acceptance Test  [VERIFIED,       FREE]
john-the-ripper      - John The Ripper                      [VERIFIED,       FREE]
jxrendermark         - JXRenderMark                         [VERIFIED,       FREE]
lightsmark           - Lightsmark                           [VERIFIED,   NON-FREE]
mafft                - Timed MAFFT Alignment                [VERIFIED,       FREE]
md-gromacs           - GROMACS MD Benchmark                 [VERIFIED,       FREE]
mencoder             - Mencoder                             [VERIFIED,       FREE]
minion               - Minion                               [VERIFIED,       FREE]
mrbayes              - Timed MrBayes Analysis               [VERIFIED,       FREE]
n-queens             - N-Queens                             [VERIFIED,       FREE]
nero2d               - Open FMM Nero2D                      [VERIFIED,       FREE]
nexuiz-iqc           - Nexuiz Image Quality                 [VERIFIED,       FREE]
nexuiz               - Nexuiz                               [VERIFIED,       FREE]
npb                  - NAS Parallel Benchmarks              [VERIFIED,       FREE]
openarena            - OpenArena                            [VERIFIED,       FREE]
opencl-ati           - ATI Stream SDK - OpenCL Tests        [VERIFIED,       FREE]
openssl              - OpenSSL                              [VERIFIED,       FREE]
opstone-svd          - Opstone Singular Value Decomposition [VERIFIED,   NON-FREE]
opstone-svsp         - Opstone Sparse-Vector Scalar Product [VERIFIED,   NON-FREE]
opstone-vsp          - Opstone Vector Scalar Product        [VERIFIED,   NON-FREE]
padman               - World of Padman                      [VERIFIED,       FREE]
pgbench              - PostgreSQL pgbench                   [VERIFIED,       FREE]
postmark             - PostMark                             [VERIFIED,       FREE]
povray               - POV-Ray                              [VERIFIED,       FREE]
prey                 - Prey                                 [VERIFIED,     RETAIL]
pybench              - PyBench                              [VERIFIED,       FREE]
pyopencl             - PyOpenCL                             [VERIFIED,       FREE]
qgears2              - QGears2                              [VERIFIED,       FREE]
quake4               - Quake 4                              [VERIFIED,     RETAIL]
ramspeed             - RAMspeed                             [VERIFIED,       FREE]
render-bench         - Render Bench                         [VERIFIED,       FREE]
scimark2             - SciMark                              [VERIFIED,       FREE]
smokin-guns          - Smokin Guns                          [VERIFIED,       FREE]
specviewperf10       - SPECViewPerf 10                      [VERIFIED,       FREE]
specviewperf9        - SPECViewPerf 9                       [VERIFIED,       FREE]
sqlite               - SQLite                               [VERIFIED,       FREE]
stream               - Stream                               [VERIFIED,       FREE]
stresscpu2           - StressCPU2 Stress-Test               [VERIFIED,       FREE]
sudokut              - Sudokut                              [VERIFIED,       FREE]
sunflow              - Sunflow Rendering System             [VERIFIED,       FREE]
super-pi             - Super PI                             [VERIFIED,   NON-FREE]
supertuxkart         - SuperTuxKart                         [VERIFIED,       FREE]
tachyon              - Tachyon                              [VERIFIED,       FREE]
tiobench             - Threaded I/O Tester                  [VERIFIED,       FREE]
tremulous            - Tremulous                            [VERIFIED,       FREE]
trislam              - Triangle Slammer                     [VERIFIED,       FREE]
tscp                 - TSCP                                 [VERIFIED,       FREE]
unigine-heaven       - Unigine Heaven                       [VERIFIED,   NON-FREE]
unigine-sanctuary    - Unigine Sanctuary                    [VERIFIED,   NON-FREE]
unigine-tropics      - Unigine Tropics                      [VERIFIED,   NON-FREE]
unpack-linux         - Unpacking The Linux Kernel           [VERIFIED,       FREE]
urbanterror          - Urban Terror                         [VERIFIED,       FREE]
ut2004-demo          - Unreal Tournament 2004 Demo          [VERIFIED,   NON-FREE]
vdrift-fps-monitor   - VDrift                               [VERIFIED,       FREE]
vdrift               - VDrift                               [VERIFIED,       FREE]
video-cpu-usage      - 1080p H.264 Video Playback           [VERIFIED,       FREE]
video-extensions     - MPlayer Video Playback Tests         [VERIFIED,       FREE]
warsow               - Warsow                               [VERIFIED,       FREE]
wine-cloth           - Humus Cloth                          [VERIFIED,       FREE]
wine-domino          - Humus Domino                         [VERIFIED,       FREE]
wine-fire2           - Humus Fire2                          [VERIFIED,       FREE]
wine-hdr             - Humus HDR                            [VERIFIED,       FREE]
wine-metaballs       - Humus Metaballs                      [VERIFIED,       FREE]
wine-vf2             - Humus Volumetric Fogging 2           [VERIFIED,       FREE]
wine-water           - Humus Water                          [VERIFIED,       FREE]
x11perf              - x11perf                              [VERIFIED,       FREE]
x264                 - x264                                 [VERIFIED,       FREE]
xplane9              - X-Plane                              [VERIFIED,       FREE]
yafray               - YafRay                               [VERIFIED,       FREE]

Основными тестами, которые необходимо прогнать, например, на веб-сервере под управлением CentOS, являются следующие : apache (Apache Benchmark), iozone (IOzone), compress-pbzip2 (Parallel BZIP2 Compression), aio-stress (AIO-Stress), ramspeed (RAMspeed), fio (Flexible IO Tester), sqlite (SQLite), stresscpu2 (StressCPU2 Stress-Test).

Привожу результаты некоторых тестов на железяке с процессором Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz, материнской платой Intel DQ35MP, 4 GB DDR2 @ 800MHz памяти, ЖД Western Digital WD4000ABYS-01TNA0 и сетевой картой D-Link DGE-528T Gigabit Ethernet Adapter.

Apache Benchmark7807.26 запросов/секунду (This is a test of ab, which is the Apache Benchmark program. This test profile measures how many requests per second a given system can sustain when carrying out 500,000 requests with 100 requests being carried out concurrently):

[root@server4 ~]# phoronix-test-suite benchmark apache

Would you like to save these test results (Y/n)? n

Running Pre-Test Scripts...

Apache Benchmark:
      apache
      Expected Trial Run Count: 3
            Started Run 1 @ 14:40:22
            Started Run 2 @ 14:41:28
            Started Run 3 @ 14:42:35

      Test Results:
            7917.80
            7769.38
            7734.60

      Average: 7807.26 Requests Per Second

IOzone405.79 MB/s запись, 1777.53 MB/s чтение (The IOzone benchmark tests the hard disk drive / file-system performance.) :

[root@server4 ~]# phoronix-test-suite benchmark iozone

========================================
Test Configuration: IOzone
========================================

Size:

1: 512MB
2: 2GB
3: 4GB
4: 8GB
5: Test All Options

Enter Your Choice: 1

Disk Test:

1: Write Performance
2: Read Performance
3: Test All Options

Enter Your Choice: 3

Would you like to save these test results (Y/n)? n

IOzone:
      iozone [Size: 512MB - Disk Test: Write Performance]
      Test Run 1 of 2
      Expected Trial Run Count: 3
            Started Run 1 @ 14:45:28
            Started Run 2 @ 14:45:47
            Started Run 3 @ 14:46:05
            Started Run 4 @ 14:46:24
            Started Run 5 @ 14:46:42
            Started Run 6 @ 14:47:01

      Test Results:
            447.6591796875
            456.3671875
            169.2451171875
            466.826171875
            443.6923828125
            451.005859375

      Average: 405.79 MB/s

IOzone:
      iozone [Size: 512MB - Disk Test: Read Performance]
      Test Run 2 of 2
      Estimated Test Run-Time: 2 Minutes
      Expected Trial Run Count: 3
            Started Run 1 @ 14:47:29
            Started Run 2 @ 14:47:47
            Started Run 3 @ 14:48:06

      Test Results:
            1799.5029296875
            1748.13671875
            1784.9736328125

      Average: 1777.53 MB/s

Parallel BZIP2 Compression12.49 секунд (This test measures the time needed to compress a file using BZIP2 compression.) :

[root@server4 ~]# phoronix-test-suite benchmark compress-pbzip2

Would you like to save these test results (Y/n)? n

Running Pre-Test Scripts...
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 30.3706 seconds, 8.8 MB/s

Parallel BZIP2 Compression:
      compress-pbzip2
      Expected Trial Run Count: 3
            Started Run 1 @ 14:55:11
            Started Run 2 @ 14:55:26
            Started Run 3 @ 14:55:40

      Test Results:
            12.519613981247
            12.449326038361
            12.512418031693

      Average: 12.49 Seconds

AIO-Stress767.06 MB/s (AIO-Stress is an a-synchronous I/O benchmark created by SuSE. Current this profile uses a single thread, a 1024MB test file, a 64KB record size.) :

[root@server4 ~]# phoronix-test-suite benchmark aio-stress

========================================
Test Configuration: AIO-Stress
========================================

Test:

Would you like to save these test results (Y/n)? n

========================================
Estimated Run-Time: 3 Minutes
========================================

AIO-Stress:
      aio-stress [Test: Random Write]
      Estimated Test Run-Time: 3 Minutes
      Expected Trial Run Count: 3
            Started Run 1 @ 15:04:39
            Started Run 2 @ 15:05:00
            Started Run 3 @ 15:05:17
            Started Run 4 @ 15:05:34
            Started Run 5 @ 15:05:51
            Started Run 6 @ 15:06:08

      Test Results:
            677.07
            795.06
            781.90
            780.56
            793.49
            774.30

      Average: 767.06 MB/s

RAMspeed3696.17 MB/s [Type: Average - Benchmark: Integer] (This benchmark tests the system memory (RAM) performance.) :

[root@server4 ~]# phoronix-test-suite benchmark ramspeed
========================================
Test Configuration: RAMspeed
========================================

Type:

1: Copy
2: Scale
3: Add
4: Triad
5: Average
6: Test All Options

Enter Your Choice: 5

Benchmark:

1: Integer
2: Floating Point
3: Test All Options

Enter Your Choice: 1

Would you like to save these test results (Y/n)? n

RAMspeed:
      ramspeed [Type: Average - Benchmark: Integer]
      Expected Trial Run Count: 1
            Started Run 1 @ 15:14:22

      Test Results:
            3696.17

      Average: 3696.17 MB/s

Flexible IO Tester23.27 секунды [Example Network Job] (fio is an advanced disk benchmark that depends upon the kernel’s AIO access library.) :

[root@server4 ~]# phoronix-test-suite benchmark fio

========================================
Test Configuration: Flexible IO Tester
========================================

Test:

1: Intel IOMeter File Server Access Pattern
2: Example Network Job
3: Test All Options

Enter Your Choice: 2

Would you like to save these test results (Y/n)? n

========================================
Estimated Run-Time: 1 Minute
========================================

Flexible IO Tester:
      fio [Test: Example Network Job]
      Estimated Test Run-Time: 1 Minute
      Expected Trial Run Count: 1
            Started Run 1 @ 15:10:25

      Test Results:
            23.27287197113

      Average: 23.27 Seconds (Run Time)

SQLite25.15 секунд (This is a simple benchmark of SQLite. At present this test profile just measures the time to perform a pre-defined number of insertions on an indexed database.) :

[root@server4 ~]# phoronix-test-suite benchmark sqlite

========================================
Test Configuration: SQLite
========================================

Test Target:

1: Default Test Directory
2: /backup [/dev/sdb1]
3: Test All Options

Enter Your Choice: 1

Would you like to save these test results (Y/n)? n

SQLite:
      sqlite [Test Target: Default Test Directory]
      Expected Trial Run Count: 3
            Started Run 1 @ 15:35:07
            Started Run 2 @ 15:35:34
            Started Run 3 @ 15:36:01

      Test Results:
            25.512656211853
            24.810537099838
            25.136831998825

      Average: 25.15 Seconds

StressCPU2 Stress-TestPASS (This test runs a series of GROMACS inner loops hand coded in assembly for speed and efficiency on SSE units. The short run lengths are only useful for heating up your CPU, for a proper test, use the 6 or 12 hour run length. This test will cause unstable hardware to stop responding and require a hard reboot.) :

[root@server4 ~]# phoronix-test-suite benchmark stresscpu2

==========================================
Test Configuration: StressCPU2 Stress-Test
==========================================

Run-Time:

1: 5 Minutes
2: 30 Minutes
3: 1 Hour
4: 6 Hours
5: 12 Hours
6: Test All Options

Enter Your Choice: 2

Would you like to save these test results (Y/n)? n

StressCPU2 Stress-Test:
      stresscpu2 [Run-Time: 30 Minutes]
      Expected Trial Run Count: 1
            Started Run 1 @ 15:39:28
            Final: PASS (Stress Test)

Еще по теме : bonnie++ – тестирование работы жесткого диска в реальных условия.

Теги: ,

Настройка синхронизации времени с помощью ntp в CentOS

Настроить синхронизацию времени с time-сервером в ОС CentOS (да и в любом другом Linux-дистрибутиве), можно с помощью утилиты ntp. Для этого нужно выполнить несколько простых шагов :

  1. Устанавливаем ntp
    [root@server1 ~]# yum install ntp
  2. В файле /etc/sysconfig/ntpd прописываем строку SYNC_HWCLOCK=yes
  3. Запускаем демон ntp
    [root@server1 ~]# /etc/init.d/ntpd start
  4. Добавляем демон ntp в автозагрузку
    [root@server1 ~]# chkconfig ntpd on

Статус синхронизации можно проверить через некоторое время с помощью утилиты ntpstat :

[root@server1 ~]# ntpstat
synchronised to NTP server (213.179.228.1) at stratum 3
   time correct to within 66 ms
   polling server every 128 s

Синхронизацию времени в ручном режиме (при невозможности запуска демона ntpd) можно произвести с помощью утилиты ntpdate :

[root@server1 ~]# ntpdate pool.ntp.org
13 Mar 23:58:40 ntpdate[18424]: adjust time server 62.149.0.30 offset -0.009561 sec

Теги:

Bonnie++ : тест производительности жесткого диска веб-сервера

Специально для тестирования производительности файловой системы создан пакет bonnie++. С помощью него можно протестировать жесткий диск в специфичных для веб-сервера условиях наличия большого количества небольших по размерам файлов, размещенных во множестве папок. bonnie++ можно найти в репозитории RPMforge.

[root@server01 ~]# yum install bonnie++
[root@server01 ~]# bonnie++ -n 5:5242880:2:100 -r 1024M -s 4096M -u root -d /home

Данная команда заставит bonnie++ протестировать файловую подсистему с использованием 4 ГБ файла и 5*1024 файлов с размерами от 2 байт до 5 МБ (5242880 байт), которые будут размещаться в ста папках. Тестирование завершается выводом на экран результатов :

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec  %CP K/sec %CP K/sec %CP K/sec   %CP  /sec %CP
server01        4G 78942  91 121977  18 112992  11 85521  99 5429842 100 +++++ +++
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
5:5242880:2/100        41  18    26   1   361   7    42  19    27   1   567  13

Для файла, размером 4 ГБ, данные результаты свидетельствуют о том, что :

  • побайтовое заполнение происходило со скоростью 78942 КБ/с, на что было в общем затрачено 91% ресурса одного процессорного ядра;
  • запись блоками по 8 КБ происходила со скоростью 121977 КБ/с, на что затрачено 18% ресурса одного ядра;
  • скорость перезаписи каждого блока выполнялась со скоростью 112992 КБ/с при загрузке ядра на 18%;
  • побайтовое чтение происходило со скоростью 85521 КБ/с, загрузка ядра – 99%;
  • чтение файла блоками по 8 КБ происходило со скоростью 5429842 КБ/с с загрузкой ядра 100%;
  • тест случайного чтения из файла завершился менее, чем за одну секунду, поэтому bonnie++ считает такой результат некорректным и отображает +++ вместо чисел.

Для теста 5*1024 файлов размерами от 2 байт до 5 МБ в ста папках результаты говорят о следующем :

  • последовательное создание файлов происходило со скоростью 41 файл/с (загрузка ЦП 18%), чтение – со скоростью в 26 файлов/с (загрузка ЦП 1%), удаление361 файлов/с (загрузка ЦП 7%);
  • случайное создание файлов было выполнено со скоростью 42 файла/с (загрузка ЦП 19%), чтение27 файлов/с (загрузка ЦП 1%), удаление567 файлов/с (загрузка ЦП 13%).

Такие результаты были получены при тестировании двух жестких дисков WD VelociRaptor WD1500HLFS 150GB, работающих в аппаратном RAID1.

Теги: ,

Dual-Master Replication в MySQL : настройка MySQL кластера из двух узлов

Данный пример демонстрирует запуск MySQL кластера уз двух узлов на платформе Linux (запуск на других платформах мало чем отличается, хотя испытан не был). На каждом узле кластера база данных доступна в режиме чтения-записи, что позволяет выполнять как INSERT, так и SELECT запросы на двух узлах одновременно. Синхронизацию всех запросов MySQL берет на себя. Даже если один из узлов временно недоступен, после его появления в сети MySQL автоматически синхронизирует все данные.

Предполагается, что на узлах уже установлены клиентская  (MySQL-client-community) и серверная (MySQL-server-community) части MySQL. Базы данных находятся в каталоге /var/lib/mysql/. Пример успешно использован для CentOS 5.4 и MySQL 5.1.42.

Пускай первый узел будет называться node1 (IP 192.168.0.101), а второй узел – node2 (IP 192.168.0.201). В данном примере dual-master репликация будет работать для баз данных с именами testdb1 и testdb2. Предполагается, что для баз данных уже созданы основные пользователи.

С помощью MySQL-клиента на node1 добавляем нового пользователя repluser с правами на репликацию (предполагается, что пароль pwd будет изменен) :

GRANT REPLICATION SLAVE ON *.* TO ‘repluser’@'192.168.0.201′ IDENTIFIED BY ‘pwd’;

То же самое нужно сделать на node2 :

GRANT REPLICATION SLAVE ON *.* TO ‘repluser’@'192.168.0.101′ IDENTIFIED BY ‘pwd’;

После этого сеанс MySQL-клиента можно завершить и приняться за правку конфигурационного файла MySQL (обычно, это my.ini).

На node1 добавляем в секцию [mysqld] следующие строки :

server-id = 1
log-bin = /var/lib/mysql/bin.log
log-slave-updates
log-bin-index = /var/lib/mysql/log-bin.index
log-error = /var/lib/mysql/error.log 

relay-log = /var/lib/mysql/relay.log
relay-log-info-file = /var/lib/mysql/relay-log.info
relay-log-index = /var/lib/mysql/relay-log.index 

auto_increment_increment = 2
auto_increment_offset = 1
master-host = 192.168.0.201
master-user = repluser
master-password = pwd 

replicate-do-db = testdb1
replicate-do-db = testdb2

На node2 выполняем аналогичные действия :

server-id = 2
log-bin = /var/lib/mysql/bin.log
log-slave-updates
log-bin-index = /var/lib/mysql/log-bin.index
log-error = /var/lib/mysql/error.log 

relay-log = /var/lib/mysql/relay.log
relay-log-info-file = /var/lib/mysql/relay-log.info
relay-log-index = /var/lib/mysql/relay-log.index 

auto_increment_increment = 2
auto_increment_offset = 2
master-host = 192.168.0.101
master-user = repluser
master-password = pwd 

replicate-do-db = testdb1
replicate-do-db = testdb2

После сохранения конфигурационных файлов, на обоих узлах следует перезапустить MySQL-сервер :

[root@server01 ~]# service mysql restart

Если все настроено правильно, то при запуске в MySQL клиенте команды

SHOW SLAVE STATUS\G

на любом из узлов в строке Slave_IO_State должно быть написано

Waiting for master to send event

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

Если данные не реплицируются или произошла серьезная ошибка в работе кластера, следующий код можно использовать для повторного запуска MySQL в режиме dual-primary (выполнять нужно на обоих узлах) :

[root@server01 ~]# service mysql stop
[root@server01 ~]# cd /var/lib/mysql/
[root@server01 ~]# rm bin.00000* error.log log-bin.index master.info relay*
[root@server01 ~]# service mysql start

Теги: , ,