Будут ли тысячи папок замедлять работу IIS или ОС

У нас есть сервер 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 ...

Узлы:

  • node1
  • 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 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

Что плохого в его использовании?


Редактировать 1

После выполнения dd if = / dev / zero of = / dev / sdb (sdc) bs = 1M oflag = direct status = progress на обоих узлах, они также не могут успешно запустил drbdadm up r0 :

node1

No valid meta data found
Command 'drbdmeta 0 v08 /dev/sdb internal apply-al' terminated with exit code 255

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

Edit 2

В это время выполнил 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
1
задан 21 July 2017 в 10:13
1 ответ

Вы не хотите создавать файловую систему на резервных дисках для 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, безусловно, отличный инструмент, и его легко использовать, если вы понимаете основы, но вы имеете дело с хранилищем, поэтому есть много места, чтобы постоянно что-то испортить.

5
ответ дан 3 December 2019 в 17:03

Теги

Похожие вопросы