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

NFS через OpenVPN: лучшие ускорители производительности

У меня два VPS - один работает под управлением 2008 Server R2, а другой - установка Ubuntu 12.04. Я использую Windows VPS для сеансов RD для Quickbooks и пары других приложений и использую Ubuntu VPS в качестве хранилища файлов NFS, а также в качестве конечной точки OpenVPN. Проблема в том, что производительность NFS через VPN просто ужасна, и под этим я имею в виду, что часто она даже не подключается и часто отключается.

Если я настрою NFS за пределами туннеля, производительность будет хорошей ... не очень, но управляемой, поэтому я знаю, что это туннель VPN.

Есть ли какие-нибудь настройки для openvpn или NFS, с которыми я могу поиграть, чтобы повысить производительность?

Несколько вещей, которые стоит попробовать:

Посмотрите на следующие параметры в OpenVPN: фрагмент, mssfix, link-mtu. По сути, все, что связано с размером пакета и фрагментацией. Слишком маленькие пакеты VPN могут снизить производительность из-за фрагментации пакетов NFS. OTOH, слишком большие пакеты VPN могут ухудшить производительность, потому что некоторые маршрутизаторы плохо их обрабатывают. Здесь сложно нарисовать простое общее правило.

Попробуйте включить / отключить сжатие в OpenVPN и посмотрите, как это влияет на производительность.

Убедитесь, что ваш VPN-сервер использует для транспорта UDP, а не TCP.

На стороне клиента NFS посмотрите на параметры: retrans, rsize, wsize - или что-нибудь еще, связанное с размером пакета и обработкой ошибок. В зависимости от вашей ситуации меньшие размеры пакетов могут фактически улучшить производительность (в локальной сети обычно бывает наоборот).

Однозначного ответа на этот тип проблемы нет, но проблема, скорее всего, находится в областях, указанных выше.

Я сделал все настройки, чтобы получить оптимальную производительность NFS по каналу ipsec, а «ls / mnt / remote1 / etc» все еще занимал 12,5 с. (я нахожусь на расстоянии 280 мс, и 13 Мбит / с / 2 Мбит / с - мое самое медленное соединение)

После некоторых поисков я продолжал наталкиваться на WebDAV в качестве альтернативы. Я использую Apache с webdav и davfs2 на клиенте для монтирования общего ресурса. При такой настройке ls увеличилось с 12,5 до 1,5 секунд, а скорость загрузки составила 10 Мбит / с. Теперь очень удобно.

Если вам нужен root-доступ, вам нужно собрать apache с "CFLAGS = -DBIG_SECURITY_HOLE". Для меня это нормально, поскольку все пользователи имеют root-доступ, и я также обслуживаю webdav только через туннель ipsec.

Я играл с конфигурацией NFS с openvpn на ADSL-соединении, я пробовал разные варианты монтирования NFS, здесь вы можете найти полный пост: NFS через OpenVPN через ADSL (или медленное соединение)

Я цитирую здесь интересные части: я прочитал много сообщений и попробовал разумное подмножество предлагаемых решений, это краткое изложение лучших советов:

  • используйте размер пакета NFS меньше, чем размер MTU (по умолчанию 8 Кбайт, новые значения должны быть меньше 1500 байт, некоторые парни предлагают 1024 байта)
  • использовать тип соединения NFS TCP; не используйте UDP в ADSL / WAN
  • используйте параметр NFS async
  • не устанавливайте очень маленькие таймауты, оставьте значение по умолчанию 60 секунд (timeo = 600) или .. Я тоже успешно пробовал 10 секунд (timeo = 100)
  • с опцией жесткого монтирования, давайте добавим опцию intr

Для пользователей Linux, вот небольшой пример конфигурации fstab для мягких креплений:

servername:/shared/     /mnt/foldername/  nfs     rw,suid,dev,soft,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0 

а здесь для жестких креплений:

rw,suid,dev,intr,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0 

NFS через vpn + adsl по-прежнему очень медленный (на данный момент я передаю файлы со скоростью около 150 КБ / сек, и это намного лучше, чем без предлагаемых изменений). Учтите, что мой 7-мегабитный ADSL имеет пропускную способность загрузки 800 КБ / сек.

PS: Я также проверю фрагментацию openvpn позже, спасибо, что поделились. Надеюсь, что мои выводы тоже пригодятся.

PS2: Эти советы отлично сработали в моей среде, и я получил два положительных отзыва от разных ребят.

Эти советы от Фабиано Тарлао очень полезны: https://thegoodcodeinn.blogspot.be/2015/06/nfs-over-openvpn-over-adslor-slow.html?showComment=1488621905080#c2984550821264645538

Я использую этот параметр ядра в моем Casper Netboot через туннель между сайтами OpenVPN:

NFSOPTS=tcp,intr,timeo=100,rsize=1024,wsize=1024