У нас есть сервер IIS-7 в Windows 2008. Пользовательское веб-приложение записывает файлы, которые клиенты загружают в раздел NTFS. Каждый год у нас появляется от 40 000 до 60 000 папок по 2-20 файлов в каждой. Попытка открыть папку года в проводнике - проблема, и создание списка папок может занять несколько минут. node2 Используйте этот способ установки DRBD на обоих узлах: rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org yum -y ...
Узлы:
Используйте этот способ установки DRBD на обоих узлах:
rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
yum -y install drbd84-utils kmod-drbd84
Добавлен новый жесткий диск и выполните разделение на обоих узлах:
fdisk /dev/sdb
Затем отформатируйте раздел:
mkfs.ext4 /dev/sdb
(Ошибка на узле 2, поэтому он был удален и добавлен новый диск, который стал / dev / sdc
. Отформатировал его.)
Следуйте официальному руководству, чтобы настроить базовый ресурс на обоих узлах:
http://docs.linbit.com/docs/users-guide-8.4/p-build-install-configure/#ch-configure
Создано /etc/drbd.d/r0.res
на обоих узлах:
resource r0 {
protocol C;
on node1 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.0.1:7789;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdc;
address 192.168.0.2:7789;
meta-disk internal;
}
}
Редактировать iptables на обоих узлах:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7788 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7799 -j ACCEPT
service iptables save
Инициализировать данные на обоих узлах:
drbdadm create-md r0
Все в порядке.
Установить ресурс на обоих узлах: drbdadm up r0
node1:
Device '0' is configured!
Command 'drbdmeta 0 v08 /dev/sdb internal apply-al' terminated with exit code 20
node2:
??: Failure: (162) Invalid configuration request
additional info from kernel:
minor exists in different resource
Command 'drbdsetup-84 new-minor r0 0 0' terminated with exit code 10
У них обоих возникли проблемы.
Запустите cat / proc / drbd
на обоих узлах:
node1:
version: 8.4.9-1 (api:1/proto:86-101)
GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----s
ns:0 nr:0 dw:0 dr:912 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2097052
node2:
version: 8.4.9-1 (api:1/proto:86-101)
GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
0: cs:WFConnection ro:Secondary/Unknown ds:Diskless/DUnknown C r----s
ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
Primary
и Secondary
unknown.
Выполните drbdadm, подключите все
на узле 1:
r0: Failure: (125) Device has a net-config (use disconnect first)
Command 'drbdsetup-84 connect r0 ipv4:192.168.0.1:7789 ipv4:192.168.0.2:7789 --protocol=C' terminated with exit code 10
Выполните drbdadm - --discard-my-data подключите все
на узле 2:
r0: Failure: (102) Local address(port) already in use.
Command 'drbdsetup-84 connect r0 ipv4:192.168.0.1:7789 ipv4:192.168.0.2:7789 --protocol=C --discard-my-data' terminated with exit code 10
Что плохого в его использовании?
После выполнения dd if = / dev / zero of = / dev / sdb (sdc) bs = 1M oflag = direct status = progress
на обоих узлах, они также не могут успешно запустил drbdadm up r0
:
No valid meta data found
Command 'drbdmeta 0 v08 /dev/sdb internal apply-al' terminated with exit code 255
??: Failure: (162) Invalid configuration request
additional info from kernel:
minor exists in different resource
Command 'drbdsetup-84 new-minor r0 0 0' terminated with exit code 10
В это время выполнил systemctl start brdb
на обоих узлах, все они получили в ожидании. Долгое ожидание не дало результата.
И запустил lsblk -a
сейчас:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 9G 0 part
├─cl-root 253:0 0 8G 0 lvm /
└─cl-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:32 0 16G 0 disk
sr0 11:0 1 1024M 0 rom
drbd0 147:0 0 2G 0 disk
Вы не хотите создавать файловую систему на резервных дисках для DRBD ( sdb
и sdc
); вы хотите сначала создать DRBD, а затем отформатировать полученное устройство DRBD в своей файловой системе. Это можно сделать другим способом, но тогда вам нужно будет увеличить резервный раздел или уменьшить размер файловой системы, чтобы освободить место для метаданных DRBD (которые находятся в конце блочного устройства, когда с использованием внутренних метаданных).
Процесс должен выглядеть примерно так:
-Установите все ваше программное обеспечение, как вы сделали выше.
-Обнуйте свой раздел на обоих узлах (необязательно, но сделайте это):
# dd if=/dev/zero of=/dev/sdb bs=1M oflag=direct status=progress
# dd if=/dev/zero of=/dev/sdc bs=1M oflag=direct status=progress
-Создайте файл конфигурации для ваших ресурсов DRBD, как вы это сделали выше.
-Добавьте правила брандмауэра, как вы это делали выше (за исключением того, что вам действительно не нужен порт 7799, поскольку он не используется в вашей конфигурации).
-Создайте метаданные DRBD на поддерживающих блочных устройствах и принесите вверх r0
на обоих узлах:
# drbdadm create-md r0
# drbdadm up r0
# cat /proc/drbd
-Проверьте вывод cat / proc / drbd
, вы должны увидеть, что ваше устройство подключено
, вторичное / Вторичный
и Несогласованный / Несогласованный
. Если что-то из этого НЕ верно, STOP , что-то не так.
-Затем выберите любой узел (НЕ ОБА), сделайте его основным (DRBD не позволит вам перейти на узел с Несогласованными
данными) и создать FS:
# drbdadm primary r0 --force
# mkfs.ext4 /dev/drbd0
Затем вы должны использовать / dev / drbd0
так же, как вы использовали бы / dev / sda
или / dev / sdc
; никогда больше не трогайте / dev / sdb
или / dev / sdc
, если вы не уверены в том, что делаете. Прикосновение к поддерживающим дискам DRBD может вызвать несоответствия, о которых DRBD не узнает (пока вы не запустите verify
или иным образом не перезапишите блок).
Продолжайте читать документацию LINBIT. DRBD, безусловно, отличный инструмент, и его легко использовать, если вы понимаете основы, но вы имеете дело с хранилищем, поэтому есть много места, чтобы постоянно что-то испортить.