Назад | Перейти на главную страницу

Производительность iSCSI между SAN и гипервизором ужасно низкая

У нас плохая настройка SAN на сервере Ubuntu 1U с iSCSI-Target с двумя дисками по 300 ГБ в RAID-0. Затем мы используем его для блочного хранилища виртуальных машин. Гипервизор подключается к SAN через гигабит через выделенную VLAN и интерфейсы.

У нас есть только одна настройка виртуальной машины и мы делаем несколько тестов. Если мы бежим hdparm -t /dev/sda1 от виртуальной машины мы получаем "нормальную" производительность 75 МБ / с от виртуальной машины к SAN. Затем мы в основном компилируем пакет с ./configure и make. Все начинается нормально, но затем внезапно средняя нагрузка на SAN вырастает до 7+, и все замедляется до ползания. Когда мы подключаемся по SSH к SAN и запускаемся сверху, убедитесь, что нагрузка составляет 7+, но использование ЦП практически ничего, кроме того, у сервера есть 1,5 ГБ доступной памяти. Когда мы завершаем компиляцию на виртуальной машине, НАГРУЗКА в SAN медленно возвращается к цифрам меньше единицы.

Что в мире вызывает это? Как мы можем диагностировать это дальше?

Вот два скриншота из SAN при высокой нагрузке.

1> Output of iotop on the SAN:

http://imgur.com/2doVP

2> Output of top on the SAN:

http://i.stack.imgur.com/UK0f8.png

Вы должны увидеть значительное увеличение производительности после включения кэширования записи на целевом объекте (детали зависят от реализации - что вы используете, tgt?) И на ваших дисках.

hdparm -W 1 /dev/sda
hdparm -W 1 /dev/sdb

Однако есть цена: это поставит под угрозу целостность данных (особенно если вы используете базы данных) в случае отключения электроэнергии или зависания системы SAN, поскольку данные, которые, как считается, были постоянно записаны на диск, находились только в изменчивой DRAM. Чтобы снизить этот риск, вы должны использовать контроллер с BBWC (кэш записи с резервным питанием от батареи), где данные сохранятся в течение некоторого времени (обычно 1-2 дня) при отключении электроэнергии.

Основная «проблема» ESXi в том, что он постоянно синхронизирует () диски. Необходимость записывать метаданные в VMFS (если она у вас есть) усугубляет ситуацию. Форумы сообщества vmware полны сообщений «мои диски работают медленно» всякий раз, когда люди используют контроллеры без кешей записи.

Я бы порекомендовал попробовать несколько вещей:

  1. Попробуйте провести тесты пропускной способности с трафиком, отличным от iSCSI (например, dd if=/dev/zero bs=1M | nc ...) и посмотрите, одинаково ли увеличиваются нагрузки (сравните обе нагрузки и% s процессора). Вероятно, вам следует попробовать протестировать только одно соединение, а также запустить около 8 из этих тестов одновременно. И попробуйте отправлять и получать данные в обоих направлениях.
  2. Попробуйте использовать другое целевое программное обеспечение (например, пакет tgt Ubuntu)
  3. Обновите ядро ​​в SAN до более новой версии на случай, если вы столкнулись с ошибкой ядра.
  4. Сообщите об этой проблеме в списке рассылки iSCSI-Target или, если не повезло, возможно, список рассылки linux-kernel?
  5. Если все остальное не помогло, и если это вариант для вас, попробуйте NexentaOS или NexentaStor и посмотрите, получите ли вы лучшие результаты.

Я также наткнулся на некоторые Рекомендации по настройке производительности iSCSI в последнее время, что может оказаться полезным, даже если эти рекомендации могут не касаться конкретной проблемы, с которой вы столкнулись.

Запустите iometer на своей виртуальной машине.

Всего с двумя дисками со скоростью вращения 7,2 тыс. Об / мин произвольный доступ может вам навредить. Вы можете получить от них только определенное количество операций в секунду.

Попробуйте запустить два сценария с iometer:

1) последовательное чтение / запись - это должно давать хорошие, жирные числа. 2) произвольный доступ к диску - здесь вас ждет земля боли.

Настройте файл для тестов, достаточно большой, чтобы его принудительно вытолкнуть из кеша виртуальной машины.