morfizm (morfizm) wrote,
morfizm
morfizm

Categories:

10G сетка дома

Ну что, я, наконец, провёл 10 гигабит между настольным компьютером и файловым сервером на FreeNAS.
Прощай, тормозня; здравствуй, нормальная скорость домашней сетки!

Что для этого нужно?

Железки
Раутеры и свитчи на 10 гигабит стоят конских денег и почти все заточены под оптоволокно.

Оптоволокно не нужно: да, по витой паре будет в 10 раз больше потребление электричества, но для домашних нужд это незначительно. Зато можно использовать те же провода, которые вы уже протянули для гигабитной сетки (надеюсь, это, как минимум, Cat6a, а лучше Cat7).

Переходники с RJ45 на SFP+ это тоже геморно и дорого. Ещё не попадитесь на рекламу, потому что очень часто продают 10-гигабитный свитч, в котором все порты 1-гигабитные, а 10-гигабитный только аплинк. Вам же надо, чтобы 10-гигабитным было всё.

Раутеры и свитчи не нужны: для двух нодов намного дешевле вставить в каждый комп по 10G карте (PCIe x4 lanes) и соединить их напрямую. Самая дешёвая карта с одним RJ45 портом, для которой есть FreeBSD драйвера, и, таким образом, поддержка для FreeNAS - это Rosewill за $130. Драйвера к ней нужны от Tehuti Networks TN40XX с сайта Tehuti Networks. (Не спрашивайте, how many bothans died to bring you this information.) Без требования совместимости с FreeBSD можно найти карты за $60-80, и даже за $80 на два порта. Для трёх нодов всё ещё дешевле и правильнее либо втыкать по две карты в кажый нод, либо по одной двухпортовой, и соединять каждый с каждым. Для четырёх не знаю, не считал. Может, там уже будет выгоднее использовать свитч.

Конфигурация
У меня всего два нода, локальная сетка у меня 192.168.1.XX/24, я просто придумал другую сетку - 192.168.2.XX/24, придумал по айпишнику, прописал, и всё заработало. В Винде в файле /Windows/system32/drivers/hosts прописал новый айпишник сервера и его имя, теперь он резолвится на быструю карту. К сожалению, винда пишет, что это "Unidentified network" и "Public network" - не знаю, как это убрать, провозился полчаса и ничего не нашёл. Чёрт с ним. Единственное, на что это влияет, это на возможность шарить что-то с винды через этот интерфейс (директории и принтеры), а мне это не нужно, у меня, наоборот, FreeNAS всё шарит.

FreeNAS конфигурировать проще простого, а вот драйвера поставить - нет. Для драйверов пришлось поставить самую свежую версию FreeNAS (11.2), в которой новый отвратительный GUI. Предыдущие версии FreeNAS (11, 11.1) идут со слишком старой версией FreeBSD, которая не поддерживает этот волшебный драйвер. Зато бонус: если вы трахались с LSI 9211 SAS card, делали flash to IT mode и ставили P16 firmware потому что более новый не поддерживался драйвером в FreeBSD, а потом вы не хотели апгрейдить FreeNAS, потому что новая версия уже требует P20 и ругается на P16, а заново перепрошивать SAS-карту это геморрой, то в совсем новом FreeNAS-е есть драйвера, которые больше не ругаются на P16. (Для самопроверки: если этот абзац не вызывает у вас лёгкого эротического возбуждения, то FreeNAS - не для вас!)

Бенчмарки
Самое вкусное: насколько стало всё круто?

Я использовал 80GB dataset (zfs recordsize: 128k), не сжимаемый, копировал его туда сюда, внимательно смотрел на метрики. Вначале получилось 180 mb/sec read и 270 mb/sec write. После того, как я как следует поколдовал с метриками, оказалось, что узкое место это SBM shares + TCP. Выставил на обеих картах jumbo frames (16k), и наступило счастье. Конечные характеристики:

Последовательное чтение:
- bandwidth: 335 mb/sec (75 mb/sec per drive),
- drive busy по дискам: 80% (5T), 60% (6T), 70% (5T), 30% (8T), 30% (8T),
- drive ops: 1.5k/sec,
- CPU load (decryption): 30%.

Последовательная запись:
- bandwidth 320 mb/sec (100 mb/sec per drive),
- drive busy по дискам: 90% (5T), 65% (6T), 80% (5T), 75% (8T), 75% (8T),
- drive ops: 1.3k/sec,
- CPU load (encryption): 40%.

Очевидно, можно улучшить запись на 20% и чтение на 33%, если заменить два медленных 5T диска на что-нибудь пошустрее.
Вероятно, SSDs для L2ARC можно тоже заменить (у меня стоят старые Intel 330 Series, у которых скорость порядка 160-180 mb/sec).
Дальше - чёрт его знает. Тесты с кэшем показали, что сетка легко даёт гигабайт в секунду после установки jumbo frames (до установки был 500 mb/sec лимит), так что, скорее всего, что-то другое будет bottleneck'ом раньше, чем network.

Но уже втрое лучше, чем было, это достойно! Разница прекрасно заметна на глаз в обычных юс-кейсах (копировать туда-сюда фильмы, фотки, архивы, открывать файлы). Заодно выяснил, что по умолчанию в FreeNAS L2ARC отключен prefetch. Включил его, сразу значительно улучшился юс-кейс "открыть в explorer'е сетевую папку с фотками", генерация превьюшек многократно ускорилась. Настроил Lightroom, чтобы брать фотки сразу из сетевых директорий (раньше я копировал локально те файлы, с которыми хотел работать).
Tags: 1, devices, software
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments