Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Konstantin Ischenko                  2:463/68.1124  27 Jan 2007  18:57:06
 To : All
 Subject : gmirror work ;)
 -------------------------------------------------------------------------------- 
 
 Возможно кому-то и пригодится...
 
 Примерно месяц назад я спрашивал в эхе о возможных штатных решениях для
 организации
 распределенной системы средствами FreeBSD, а именно "RAID over net".
 Вещь сама по себе интересная да и восстановление работоспособности быстрее
 чем из бэкапа. В Инете есть такое решение для linux
 (http://gazette.linux.ru.net/rus/articles/clusters.html).
 
 Были высказаны идеи как это реализовать при помощи carp(4) и gmirror(8).
 
 Я обрадовался, оказалось все необходимое под рукой и начал эксперементировать.
 Сперва прочитал, естественно, handbook
 (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/geom-mirror.html),
 Локальное зеркалирование дисков мне не нужно было, но как это все работает
 проверил, вопросов не было.
 В то время под рукой была версия OS 6.1RC1.
 
 Из железа: две похожие машинки, Celeron 1.8, 1Gb Memory, HDD ide 60Gb, rtl8139
 ether.
 Подключены компы через свитч catalist 2950.
 Для создания RAID1 были "откушены" во время инсталляции с первого хоста 5Gb
 slice (/dev/ad0s2),
 а со второго - 5Gb раздела (/dev/ad0s1d).
 
 Пробовал создавать устройствво gm0 на host2.
 Для этого на host1 (192.168.2.253):
 
 [konst@host1 /etc]$ less gg.exports
 192.168.2.254   RW      /dev/ad0s2
 
 а втором хосте делаю:
 
 ggatec create -o rw 192.168.2.253 /dev/ad0s2
 
 создалось устройство /dev/ggate0
 
 Затем создаю gm0:
 
 gmirror label -n -b round-robin gm0 /dev/ad0s1d
 gmirror load
 gmirror insert gm0 ggate0
 fdisk, bsdlabel-ом распрелеяю все под раздел a, newfs /dev/mirror/gm0s1a
 gmirror configure -a
 
 И тут затык :( Скорость синронизации очень-очень низкая.
 Что я не делал какие параметры не менял, ничего не помогало.
 Спасибо огромное Andrey Ostanovsky и Dmitriy Kirhlarov
 за советы в какую сторону копать и на что обратить внимание и из-за
 чего может так себя вести синхронизация.
 Даже написал письмо с вопросом как повысить произодительность gmirror
 Pawel Jakub Dawidek, но либо он не читает, либо испугался моего английского ;)
 
 Короче плюнул на все и почему-то с надеждой стал ждать 6.2
 После выхода релиза, я host1 проапдейтил cvsup-ом, а host2 install from iso.
 
 Изменил на двух машинках:
 [konst@host1 /etc]$ less /etc/sysctl.conf
 #
 # for gmirror.
 net.local.stream.recvspace=65535
 net.local.stream.sendspace=65535
 net.inet.tcp.sendspace=65535
 net.inet.tcp.recvspace=65535
 kern.ipc.maxsockbuf=2097152
 
 затем сделал на первом хосте
 ggated -R 1048576 -S 1048576
 
 а на втором
 ggatec create -R 1048576 -S 1048576 -o rw 192.168.2.253 /dev/ad0s2
 
 снова создаю gmirror - и, о чудо, смотрю как начали гореть диодики активности
 HDD и сетевух! ;)
 При таких параметрах, что я задавал, скорость записи 100Mb (dd with
 bs=1024,2048) примерно
 102400000 bytes transferred in 18.402945 secs (5564327 bytes/sec)
 а с bs=512
 102400000 bytes transferred in 34.777086 secs (2944468 bytes/sec)
 Может не совсем корректно мерять скорость r/w если беру данные с того же винта
 куда и копирую,
 но так, для информации...
 
 Если во время того, как копируются либо читаются данные с раздела geom,
 видергивать
 из разъема сетевой карточки патчкорд - процесс останавливается, на консоль
 сообщение об ошибке.
 После 20 сек ожидания подключаю все на место, секунд через пять копирование
 восстанавливается.
 
 Если после перезагрузки gmirror восстановится без какого-то из member - то после
 ручного activate, либо insert синхронизируется все в фоновом режиме. Если
 при этом я уже рабоаю с mount разделом - то замедляется как и копирование так и
 "размазываение" данных примерно в 3-4 раза. о работать можно.
 
 Пять гиг по времени синхрогится примерно 8 минут, это когда ничего не делаю с
 разделом.
 Если сделать destroy gmirror, то данные на первом хосте возможно просмотреть,
 если сделаю mount /dev/ad0s2cs1 либо если с /dev/ad0s2 сделаю при помощи
 "ggatl create"  ggate0. Тогда mount /dev/ggate0s1a
 
 А данные на втором хосте:
 mount /dev/ad0s1dcs1a
 либо опять "причесываем" при помощи ggatel и тогда /dev/ggate0s1a
 
 Дальше не ковырял. ;)
 Konstantin
 
 --- GoldED+/BSD 1.1.5
  * Origin:  ква  (2:463/68.1124)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 gmirror work ;)   Konstantin Ischenko   27 Jan 2007 18:57:06 
Архивное /ru.unix.bsd/395245bb7693.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional