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 будет отсутсвовать!
И вообще все опыты с ядром Вы делаете на свой страх и риск, то что я описал выше делалось на реальном тазике, и после ребута все поднялось нормально )))) если что-то у вас не получилось, прошу в коменты, только без наездов :))))

Поделись с друзьями:

Опубликовано 21.05.2011 в 20:22 · Автор komivlad · Ссылка
Рубрики: FreeBSD, Сеть · Теги: , , , , , , , , , , , ,

27 комментариев

Подписаться на комментарии по RSS

  1. Написал(-а) komivlad
    07.09.2011 в 06:54
    Ответить · Ссылка

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

  2. Написал(-а) Sergei
    05.09.2011 в 19:37
    Ответить · Ссылка

    А у меня проблема, у меня стоит 2 портовая интел карта и при больших нагрузках падает скорость,

    а имеено когда трафик поднимается где то до 1,4 гигабита и после скорость падает

    винты не нагружены в свап тоже не переходит, если только не считать пару кб.

    веб сервер nginx

    в чем может быть проблема ?

  3. Написал(-а) komivlad
    19.06.2011 в 09:33
    Ответить · Ссылка

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

  4. Написал(-а) Demeo
    18.06.2011 в 14:20
    Ответить · Ссылка

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

  5. Написал(-а) komivlad
    13.06.2011 в 17:43
    Ответить · Ссылка

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

  6. Написал(-а) Demeo
    13.06.2011 в 17:30
    Ответить · Ссылка

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

  7. Написал(-а) komivlad
    12.06.2011 в 20:51
    Ответить · Ссылка

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

  8. Написал(-а) Demeo
    12.06.2011 в 20:47
    Ответить · Ссылка

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

  9. Написал(-а) komivlad
    12.06.2011 в 08:10
    Ответить · Ссылка

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

  10. Написал(-а) Demeo
    11.06.2011 в 23:00
    Ответить · Ссылка

    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

  11. Написал(-а) komivlad
    10.06.2011 в 07:57
    Ответить · Ссылка

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

    сбрось вывод uname -a

  12. Написал(-а) Demeo
    10.06.2011 в 07:19
    Ответить · Ссылка

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

  13. Написал(-а) komivlad
    08.06.2011 в 19:27
    Ответить · Ссылка

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

  14. Написал(-а) Demeo
    08.06.2011 в 18:40
    Ответить · Ссылка

    Intel Pro/1000 MT Dualport Server Adapter

  15. Написал(-а) komivlad
    08.06.2011 в 13:06
    Ответить · Ссылка

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

  16. Написал(-а) Demeo
    08.06.2011 в 12:43
    Ответить · Ссылка

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

  17. Написал(-а) komivlad
    08.06.2011 в 11:44
    Ответить · Ссылка

    7.1.9 это последний драйвер интела, на сколько мне известно, у Яши пока что 7.0.5

    я вообще делаю так

    на примере моей статьи, грохаю папку ../compile/ROUTER

    потом по новой

    config ROUTER

    и далее по отработанной схеме,

    make cleandepend && make depend

    make

    make install

    и все работает

  18. Написал(-а) Demeo
    08.06.2011 в 11:30
    Ответить · Ссылка

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

  19. Написал(-а) komivlad
    08.06.2011 в 11:18
    Ответить · Ссылка

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

  20. Написал(-а) Demeo
    08.06.2011 в 11:15
    Ответить · Ссылка

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

  21. Написал(-а) komivlad
    08.06.2011 в 11:11
    Ответить · Ссылка

    для последних дров яндекса будет следующее:

    Intel (R) PRO/1000 Network Connection 7.0.5.Yandex

  22. Написал(-а) Demeo
    08.06.2011 в 11:05
    Ответить · Ссылка

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

  23. Написал(-а) komivlad
    08.06.2011 в 10:54
    Ответить · Ссылка

    cat /var/run/dmesg.boot | grep em0

    em0: <Intel(R) PRO/1000 Network Connection 7.1.9>

    но на этом сервере не стоят драйвера Яндекса

    Intel (R) PRO/1000 Network Connection относится к Intel PRO/1000 Gigabit Ethernet Family

  24. Написал(-а) Demeo
    08.06.2011 в 10:39
    Ответить · Ссылка

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

  25. Написал(-а) Demeo
    08.06.2011 в 10:34
    Ответить · Ссылка

    Движок не пропускает символы «больше/меньше» 🙂

    Имелось в виду вот такое — Intel (R) PRO/1000 Legacy Network Connection 1.0.3

  26. Написал(-а) komivlad
    08.06.2011 в 10:31
    Ответить · Ссылка

    даже если установить драйвера от Яндекса, то все равно будет em0

    em это идентификатор Intel PRO/1000 Gigabit Ethernet Family

    даже в конфиге ядра если посмотреть, то написано:

    device em # Intel PRO/1000 Gigabit Ethernet Family

  27. Написал(-а) Demeo
    08.06.2011 в 10:23
    Ответить · Ссылка

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

Подписаться на комментарии по RSS

Написать комментарий