FreeBSD em драйвера от Yandex, пересборка ядра с поддержкой pf, ipfw

Каждый кто занимается администрированием серверов , знает что нет ничего лучше чем сетевое оборудование компании Intel. Благодаря им система держит более высокую нагрузку, т.к. чип сетевой карты сам обрабатывает многие операции не привлекая системные ресурсы, и думаю каждый уважающий себя админ, хоть раз в жизни слышал про драйвера от Яндекса для моей любимой фряшки.
Чем же они хороши? Тем что они ориентированны на работу в много процессорных системах и более оптимально используют процессор.
Скачать можно отсюда
Начнемс (для FreeBSD 8.2):


# wget http://people.yandex-team.ru/~wawa/e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18.tar.gz

Распакуем:


# tar xvfz e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18.tar.gz

и скопируем вместо стандартных дров:


# cd e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18
# cp * /usr/src/sys/dev/e1000

теперь можно пересобрать ядро, плюс ко всему мне понадобилось добавить в него pf и ipfw, что собственно говоря и сделаю :))
У меня amd64 платформа:


# cd /usr/src/sys/amd64/conf/
# cp GENERIC ROUTER
# ee ROUTER

и в него добавляем:
для ipfw и даминета (шейпер)


options         IPFIREWALL
options         IPDIVERT
options         IPFIREWALL_FORWARD
options         DUMMYNET

для pf и altq


#ALTQ
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
#PF
device          pf
device          pflog
device          pfsync

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


# config ROUTER
Kernel build directory is ../compile/ROUTER
Don't forget to do ``make cleandepend && make depend''

топаем в ../compile/ROUTER и собираем все это дело:


# cd ../compile/ROUTER
# make cleandepend && make depend

после депендов прописываем следующие команды и идем пить чай, т.к. это займет немного времени:


# make
# make install

как только все собралось, ребутим машинку и наслаждаемся :))


# reboot

P.S. Если вы тоже добавляли в ядро фаервол, то было бы неплохо иметь доступ к серверу по ipmi или физический, т.к. после ребута если вы не прописали в rc.conf путь к правилам или не поставили тип фаерволла open, доступ по ssh будет отсутсвовать!
И вообще все опыты с ядром Вы делаете на свой страх и риск, то что я описал выше делалось на реальном тазике, и после ребута все поднялось нормально )))) если что-то у вас не получилось, прошу в коменты, только без наездов :))))

Оцените статью
( Пока оценок нет )

Добавить комментарий

  1. Demeo

    em0: — это значит, что дрова НЕ от Яндекса?

    Ответить
  2. username

    даже если установить драйвера от Яндекса, то все равно будет em0
    em это идентификатор Intel PRO/1000 Gigabit Ethernet Family
    даже в конфиге ядра если посмотреть, то написано:
    device em # Intel PRO/1000 Gigabit Ethernet Family

    Ответить
  3. Demeo

    Движок не пропускает символы «больше/меньше» 🙂
    Имелось в виду вот такое — Intel(R) PRO/1000 Legacy Network Connection 1.0.3

    Ответить
  4. Demeo

    dmesg | grep em0 — у вас что показывает?

    Ответить
  5. username

    cat /var/run/dmesg.boot | grep em0
    em0:
    но на этом сервере не стоят драйвера Яндекса
    Intel(R) PRO/1000 Network Connection относится к Intel PRO/1000 Gigabit Ethernet Family

    Ответить
  6. Demeo

    А как узнать, что дрова поставились?

    Ответить
  7. username

    для последних дров яндекса будет следующее:
    Intel(R) PRO/1000 Network Connection 7.0.5.Yandex

    Ответить
  8. Demeo

    Значит не поставились. Смущает в сорцах наличие двух папок — «em» и теперь вот еще «е1000». Заменил содержимое папок из папки Яндекса — пересобрал ядро, один фиг пишет Intel (R) PRO/1000 Legacy Network Connection 1.0.1 — теперь даже не 1.0.3

    Ответить
  9. username

    интересненько, менял содержимое папки e1000? если да, то все должно было пройти нормально, лично проверял когда собирал себе их

    Ответить
  10. Demeo

    А может стоит удалить в compile папки от старых сборок ядер? И удалить в /usr/src/sys/dev папку «em», оставив только «e1000» от Яндекса? Кстати, последний драйвер вроде уже 7.1.9

    Ответить
  11. username

    7.1.9 это последний драйвер интела, на сколько мне известно, у Яши пока что 7.0.5
    я вообще делаю так
    на примере моей статьи, грохаю папку ../compile/ROUTER
    потом по новой
    config ROUTER
    и далее по отработанной схеме,
    make cleandepend && make depend
    make
    make install
    и все работает

    Ответить
  12. Demeo

    Бред какой-то. Нифига не получается — Intel (R) PRO/1000 Legacy Network Connection 1.0.1 и хоть ты его тресни.

    Ответить
  13. username

    а что за сетевка у тебя?

    Ответить
  14. Demeo

    Intel Pro/1000 MT Dualport Server Adapter

    Ответить
  15. username

    по идее должны схаваться драйверами, надо искать суть проблемы, а ядро точно новое устанавливаешь?

    Ответить
  16. Demeo

    make install разве не новое ядро устанавливает?

    Ответить
  17. username

    новое, с Intel Pro/1000 MT Dualport Server Adapter не работал пока что, может не поддерживается дровами, хотя должно, надо спрашивать у разработчика дров
    сбрось вывод uname -a

    Ответить
  18. Demeo

    FreeBSD euronet.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Wed Jun 8 22:01:37 EEST 2011 [email protected]:/usr/src/sys/amd64/compile/NODENY_EM amd64

    Ответить
  19. username

    ядро новое стоит, я пересобирал ядро именно на 8.2, и все было норм, попробуй папку /usr/src/sys/dev/e1000 почистить, удалить все нах, или перенести куда-нить, а потом залить дрова яндекса, и пересобрать ядро, хотя вполне возможно что твоя сетевка ими не поддерживается, но надо попробовать

    Ответить
  20. Demeo

    Как раз так и делал. Удалял все содержимое папки, и заливал яндексовское. Скорей всего яндекс не менял ничего в интеловских драйверах для моей карточки. А я губу раскатал )))

    Ответить
  21. username

    вполне возможно))

    Ответить
  22. Demeo

    Ну значит придется покупать сервер с PCI-Express и ставить igb-карточки

    Ответить
  23. username

    решать тебе)) или твоему руководству, много трафа надо гонять? не забудь про нормальный процик 😉 а то какбэ без норм процика много каши не переваришь)))

    Ответить
  24. Demeo

    Ну тут как бы тоже не слабо — 2 2-ядерных Ксеона на 3 Ггц и 4 Гб памяти. А трафа гоняем до 300 Мбит всего, правда здесь и шлюз, и нат, и биллинг с шейпером

    Ответить
  25. username

    трафа маловато конечно, на таком тазике можно в разы больше прогнать, у мя чуть больше бегает, пока что 500-600 мегабит, но и ресурсов пока что хватает на серваке, нагрузка всего 10-13 процентов

    Ответить
  26. Sergei

    А у меня проблема , у меня стоит 2 портовая интел карта и при больших нагрузках падает скорость ,
    а имеено когда трафик поднимается где то до 1,4 гигабита и после скорость падает
    винты не нагружены в свап тоже не переходит , если только не считать пару кб.
    веб сервер nginx
    в чем может быть проблема ?

    Ответить
  27. username

    а дрова от Яши стоят?

    Ответить