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

27 комментариев. Оставить новый

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

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

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

    Ответить
  • dmesg | grep em0 – у вас что показывает?

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

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

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

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

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

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

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

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

    Ответить
  • а что за сетевка у тебя?

    Ответить
  • Intel Pro/1000 MT Dualport Server Adapter

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

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

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

    Ответить
  • 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

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

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

    Ответить
  • вполне возможно))

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

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

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

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

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

    Ответить
  • а дрова от Яши стоят?

    Ответить

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Меню