Привет! Я недавно начал использовать Proxmox и у меня работает кластер. У меня есть сервер Huawei с 6 корпусами (blades) и большая SAN, подключенная к ним. Я установил Proxmox на SAN. Настроил SAN на FibreChannel вместо iSCSI, так как у нас проблемы со скоростью при использовании текущего iSCSI.
Удалось настроить FibreChannel на первом узле, следуя двум руководствам: [ >) и [ >).
Мои шаги на первом узле:
1. Установил Proxmox, затем запустил удобный скрипт, который включает не-основные репозитории и обновляет Proxmox, затем перезагрузил узел.
2. `apt update`, затем `apt install multipath-tools`, также установил `apt install grub-efi-amd64`, перезагрузил.
3. Запустил `fdisk -l` и обнаружил 2 устройства (на самом деле 4, так как каждое повторяется дважды).
```
Disk /dev/sdb: 17.28 TiB, 19002344603648 bytes, 37113954304 sectors
Disk model: XSG1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 139.93 TiB, 153854788239360 bytes, 300497633280 sectors
Disk model: XSG1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
```
Чтобы получить WWID для устройства: `lib/udev/scsi_id -g -u -d /dev/sdc` (и sdb).
Теперь добавляем WWID в систему:
```
multipath -a 36785860100b13fad1aa17fca00000001
multipath -a 36785860100b13fad1aa1950100000002
```
Обновляем систему с помощью `multipath -r`.
Создаем файл `/etc/multipath.conf`:
```
defaults {
find_multipaths yes
user_friendly_names yes
}
blacklist {
devnode "^hd[a-z][[0-9]*"
devnode "^sda$"
}
multipaths {
multipath {
wwid "36785860100b13fad1aa17fca00000001"
alias "fcpath1"
}
multipath {
wwid "36785860100b13fad1aa1950100000002"
alias "fcpath2"
}
}
```
Чтобы проверить, работает ли система, запускаю `multipath -ll`:
```
fcpath1 (36785860100b13fad1aa17fca00000001) dm-5 HUAWEI,XSG1 size=17T features='1 queue_if_no_path' hwhandler='0' wp=rw
+- policy='service-time 0' prio=1 status=active
|- 11:0:0:1 sdb 8:16 active ghost running
`- 12:0:0:1 sdd 8:48 active ready running
fcpath2 (36785860100b13fad1aa1950100000002) dm-6 HUAWEI,XSG1 size=140T features='1 queue_if_no_path' hwhandler='0' wp=rw
+- policy='service-time 0' prio=1 status=active
|- 11:0:0:2 sdc 8:32 active ready running
`- 12:0:0:2 sde 8:64 active ghost running
```
Теперь запускаю `pvcreate /dev/mapper/fcpath1` и `pvcreate /dev/mapper/fcpath2`, затем `vgcreate fastsas /dev/mapper/fcpath1` и `vgcreate slowsas /dev/mapper/fcpath2`.
Затем я вошел в WebGui и добавил узел в свой кластер. Затем я перешел в "Центр обработки данных", "Хранилище" и нажал "Добавить", выбрав "LVM". Я создал "FCfast" и выбрал том "fastsas" и выбрал узел и выбрал "Общий". Сделал то же самое с другим, но назвал его "FCslow".
Все работает отлично, я могу переносить работающие виртуальные машины, они работают отлично, могут пинговать и видеть интернет, все хорошо. Пингование с компьютеров извне происходит без потерь.
Теперь у меня есть 4 других узла, также подключенных к той же SAN. Я установил Proxmox на 3 из них. Следуя тем же шагам, что и на первом узле, остановился непосредственно перед запуском `pvcreate` и `vgcreate`, потому что, как я понимаю, это разрушит данные на устройствах? Я ошибаюсь?
Затем я добавил их к узлу, перешел в "Центр обработки данных" и просто добавил имя узла к FCfast LVM и FCslow LVM. LVM появляется под "хранилищами", я могу мигрировать нерабочие виртуальные машины на них без проблем, но при живой миграции виртуальная машина успешно мигрирует и не восстанавливается, она остается неактивной. Мне приходится вручную запускать ее, ничего страшного.
Но у меня появилась странная проблема. Виртуальные машины, работающие на 2-м, 3-м и 4-м узлах, могут пинговать наружу без потерь пакетов. НО, когда я пытаюсь пинговать их с компьютеров извне, я получаю либо отсутствие ответа, либо большие потери пакетов (15-25%).
Как указано в этом посте [ >), "- вам необходимо вручную настроить хранилище SAN, подключенное к LVM, с каждого узла Proxmox. Нет автоматической передачи общих хранилищ (например, iSCSI и т. д.) между узлами Proxmox, насколько я знаю (т.е. вы по сути - настраиваете на первом узле Proxmox - затем переходите ко второму узлу, - вам не нужно повторять только шаг по созданию LVM на SAN-диске. Но вам нужно 'добавить' хранилище в узел Proxmox. Отметьте флажком 'Общий'.".
С другой стороны, есть предложение, что нужно запускать `multipath -r` на всех узлах после изменений.
Любые идеи будут приветствоваться.
---
Я предлагаю следующее:
1. **Повторное создание multipath:** Попробуйте запустить `multipath -r` на всех узлах после внесения изменений. Это может помочь системе пересчитать пути и выбрать оптимальные.
2. **Проверка конфигурации multipath:** Убедитесь, что конфигурация multipath (/etc/multipath.conf) одинакова на всех узлах. Особенно проверьте, что WWID и псевдонимы (alias) правильно настроены.
3. **Проверка подключения:** Убедитесь, что все узлы имеют стабильное подключение к SAN и что нет проблем с физическим уровнем SAN.
4. **Изоляция проблем:** Попробуйте переместить виртуальную машину с проблемного узла (3 или 4) на узел 1 (который работает нормально). Если виртуальная машина работает нормально на узле 1, то проблема может быть связана с конфигурацией или подключением на проблемном узле.
5. **Проверка файервола:** Хотя вы упомянули, что файервол разрешает трафик, проверьте правила файервола на каждом узле, чтобы убедиться, что нет никаких случайных блокировок.
6. **Обновление прошивки:** Убедитесь, что прошивка SAN и узлов совместима и что используются последние версии.
7. **Оцените сетевую конфигурацию:** Хотя вы упомянули, что все узлы используют одну и ту же сетевую конфигурацию, еще раз убедитесь, что они идентичны. Проверьте маршруты, шлюзы по умолчанию и DNS-серверы.
8. **Мониторинг SAN:** Используйте инструменты мониторинга SAN для проверки состояния дисков, соединений и других важных показателей.
Помните, что часто проблема кроется в мелочах. Методично проверяйте все возможные сценарии и будьте внимательны к деталям.
Удалось настроить FibreChannel на первом узле, следуя двум руководствам: [ >) и [ >).
Мои шаги на первом узле:
1. Установил Proxmox, затем запустил удобный скрипт, который включает не-основные репозитории и обновляет Proxmox, затем перезагрузил узел.
2. `apt update`, затем `apt install multipath-tools`, также установил `apt install grub-efi-amd64`, перезагрузил.
3. Запустил `fdisk -l` и обнаружил 2 устройства (на самом деле 4, так как каждое повторяется дважды).
```
Disk /dev/sdb: 17.28 TiB, 19002344603648 bytes, 37113954304 sectors
Disk model: XSG1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 139.93 TiB, 153854788239360 bytes, 300497633280 sectors
Disk model: XSG1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
```
Чтобы получить WWID для устройства: `lib/udev/scsi_id -g -u -d /dev/sdc` (и sdb).
Теперь добавляем WWID в систему:
```
multipath -a 36785860100b13fad1aa17fca00000001
multipath -a 36785860100b13fad1aa1950100000002
```
Обновляем систему с помощью `multipath -r`.
Создаем файл `/etc/multipath.conf`:
```
defaults {
find_multipaths yes
user_friendly_names yes
}
blacklist {
devnode "^hd[a-z][[0-9]*"
devnode "^sda$"
}
multipaths {
multipath {
wwid "36785860100b13fad1aa17fca00000001"
alias "fcpath1"
}
multipath {
wwid "36785860100b13fad1aa1950100000002"
alias "fcpath2"
}
}
```
Чтобы проверить, работает ли система, запускаю `multipath -ll`:
```
fcpath1 (36785860100b13fad1aa17fca00000001) dm-5 HUAWEI,XSG1 size=17T features='1 queue_if_no_path' hwhandler='0' wp=rw
+- policy='service-time 0' prio=1 status=active
|- 11:0:0:1 sdb 8:16 active ghost running
`- 12:0:0:1 sdd 8:48 active ready running
fcpath2 (36785860100b13fad1aa1950100000002) dm-6 HUAWEI,XSG1 size=140T features='1 queue_if_no_path' hwhandler='0' wp=rw
+- policy='service-time 0' prio=1 status=active
|- 11:0:0:2 sdc 8:32 active ready running
`- 12:0:0:2 sde 8:64 active ghost running
```
Теперь запускаю `pvcreate /dev/mapper/fcpath1` и `pvcreate /dev/mapper/fcpath2`, затем `vgcreate fastsas /dev/mapper/fcpath1` и `vgcreate slowsas /dev/mapper/fcpath2`.
Затем я вошел в WebGui и добавил узел в свой кластер. Затем я перешел в "Центр обработки данных", "Хранилище" и нажал "Добавить", выбрав "LVM". Я создал "FCfast" и выбрал том "fastsas" и выбрал узел и выбрал "Общий". Сделал то же самое с другим, но назвал его "FCslow".
Все работает отлично, я могу переносить работающие виртуальные машины, они работают отлично, могут пинговать и видеть интернет, все хорошо. Пингование с компьютеров извне происходит без потерь.
Теперь у меня есть 4 других узла, также подключенных к той же SAN. Я установил Proxmox на 3 из них. Следуя тем же шагам, что и на первом узле, остановился непосредственно перед запуском `pvcreate` и `vgcreate`, потому что, как я понимаю, это разрушит данные на устройствах? Я ошибаюсь?
Затем я добавил их к узлу, перешел в "Центр обработки данных" и просто добавил имя узла к FCfast LVM и FCslow LVM. LVM появляется под "хранилищами", я могу мигрировать нерабочие виртуальные машины на них без проблем, но при живой миграции виртуальная машина успешно мигрирует и не восстанавливается, она остается неактивной. Мне приходится вручную запускать ее, ничего страшного.
Но у меня появилась странная проблема. Виртуальные машины, работающие на 2-м, 3-м и 4-м узлах, могут пинговать наружу без потерь пакетов. НО, когда я пытаюсь пинговать их с компьютеров извне, я получаю либо отсутствие ответа, либо большие потери пакетов (15-25%).
Как указано в этом посте [ >), "- вам необходимо вручную настроить хранилище SAN, подключенное к LVM, с каждого узла Proxmox. Нет автоматической передачи общих хранилищ (например, iSCSI и т. д.) между узлами Proxmox, насколько я знаю (т.е. вы по сути - настраиваете на первом узле Proxmox - затем переходите ко второму узлу, - вам не нужно повторять только шаг по созданию LVM на SAN-диске. Но вам нужно 'добавить' хранилище в узел Proxmox. Отметьте флажком 'Общий'.".
С другой стороны, есть предложение, что нужно запускать `multipath -r` на всех узлах после изменений.
Любые идеи будут приветствоваться.
---
Я предлагаю следующее:
1. **Повторное создание multipath:** Попробуйте запустить `multipath -r` на всех узлах после внесения изменений. Это может помочь системе пересчитать пути и выбрать оптимальные.
2. **Проверка конфигурации multipath:** Убедитесь, что конфигурация multipath (/etc/multipath.conf) одинакова на всех узлах. Особенно проверьте, что WWID и псевдонимы (alias) правильно настроены.
3. **Проверка подключения:** Убедитесь, что все узлы имеют стабильное подключение к SAN и что нет проблем с физическим уровнем SAN.
4. **Изоляция проблем:** Попробуйте переместить виртуальную машину с проблемного узла (3 или 4) на узел 1 (который работает нормально). Если виртуальная машина работает нормально на узле 1, то проблема может быть связана с конфигурацией или подключением на проблемном узле.
5. **Проверка файервола:** Хотя вы упомянули, что файервол разрешает трафик, проверьте правила файервола на каждом узле, чтобы убедиться, что нет никаких случайных блокировок.
6. **Обновление прошивки:** Убедитесь, что прошивка SAN и узлов совместима и что используются последние версии.
7. **Оцените сетевую конфигурацию:** Хотя вы упомянули, что все узлы используют одну и ту же сетевую конфигурацию, еще раз убедитесь, что они идентичны. Проверьте маршруты, шлюзы по умолчанию и DNS-серверы.
8. **Мониторинг SAN:** Используйте инструменты мониторинга SAN для проверки состояния дисков, соединений и других важных показателей.
Помните, что часто проблема кроется в мелочах. Методично проверяйте все возможные сценарии и будьте внимательны к деталям.
