После длительного перерыва этот блог переезжает на новый адрес - discretemode.com.
суббота, 18 мая 2013 г.
воскресенье, 26 июля 2009 г.
Домашний сервер. Часть вторая — сборка.
И года не прошло, а всего лишь месяц и у меня появилась возможность заняться своим новым домашним сервером и дописать статью.
В первой статье я рассказал о выборе комплектующих, а здесь я покажу как это все выглядит и что из этого получилось.
Куда все будет собираться - инвиновский корпус bm639:
Если вам захочется использовать дополнительную плату расширения, например мне нужна будет вторая сетевушка, чтобы использовать сервер как шлюз, тогда вам понадобятся их низкопрофильные варианты:
Теперь ядро всей системы, материнская плата от Intel D945GCLF2D со встроенным процессором Atom 330, что приятно - эта плата имеет встроенную гигабитную(!) сетевушку:
Средство хранения данных - жесткий диск WD10EVDS. В принципе, выбранный корпус позволяет использовать два жестких диска, второй диск можно вставить в 5-ти дюймовый отсек, так что в теории выбранная конфигурация позволяет хранить до 4Тб данных:
А теперь все собранное вместе:
Самым большим удивлением для меня было то насколько это все вместе громко работает. Вы можете убедиться в этом сами (видео снималось только ради звука, так что извините за качество картинки :):
Всего в системе 3 кулера + шум от жесткого диска. На кулер блока питания я особо не мог повлиять, да в принципе он самый тихий из троицы, а вот остальные два (кулер на корпусе и на северном мосте) я решил заменить. Кулер северного моста я, сначала, планировал заменить на пассивный HR-05, но оказалось что он не войдет по высоте да и по ширине ему будет тесновато. В итоге я его просто подключил через регулятор скорости и установил его на 2000 об/м (изначально было 4000 об/м). Кулер системного блока был заменен на Enermax UCEV8, этот кулер сам меняет скорость вращения в зависимости от температуры (500 об/м при температуре меньше 45 градусов и 1500, если больше):
Результат получился довольно хорошим:
Получился довольно приятный домашний сервер:
И на последок несколько результатов тестов производительности:
В первой статье я рассказал о выборе комплектующих, а здесь я покажу как это все выглядит и что из этого получилось.
Куда все будет собираться - инвиновский корпус bm639:
Если вам захочется использовать дополнительную плату расширения, например мне нужна будет вторая сетевушка, чтобы использовать сервер как шлюз, тогда вам понадобятся их низкопрофильные варианты:
Теперь ядро всей системы, материнская плата от Intel D945GCLF2D со встроенным процессором Atom 330, что приятно - эта плата имеет встроенную гигабитную(!) сетевушку:
Средство хранения данных - жесткий диск WD10EVDS. В принципе, выбранный корпус позволяет использовать два жестких диска, второй диск можно вставить в 5-ти дюймовый отсек, так что в теории выбранная конфигурация позволяет хранить до 4Тб данных:
А теперь все собранное вместе:
Самым большим удивлением для меня было то насколько это все вместе громко работает. Вы можете убедиться в этом сами (видео снималось только ради звука, так что извините за качество картинки :):
Всего в системе 3 кулера + шум от жесткого диска. На кулер блока питания я особо не мог повлиять, да в принципе он самый тихий из троицы, а вот остальные два (кулер на корпусе и на северном мосте) я решил заменить. Кулер северного моста я, сначала, планировал заменить на пассивный HR-05, но оказалось что он не войдет по высоте да и по ширине ему будет тесновато. В итоге я его просто подключил через регулятор скорости и установил его на 2000 об/м (изначально было 4000 об/м). Кулер системного блока был заменен на Enermax UCEV8, этот кулер сам меняет скорость вращения в зависимости от температуры (500 об/м при температуре меньше 45 градусов и 1500, если больше):
Результат получился довольно хорошим:
Получился довольно приятный домашний сервер:
И на последок несколько результатов тестов производительности:
- Под Windows XP:
- PCMark05 - 2207
- WinRar (встроенный тест):
- Один поток - 233 Kb/s
- Многопоточный режим - 568 Kb/s
- Одновременно 4-е однопоточных теста - 157+158+157+158=630 Kb/s
- Под Fedora 11:
- Компиляция lighttpd 1.4.23 (./configure --without-pcre --without-bzip2):
- Время выполнения - 1:18 (эту же операцию Core2Duo-8200 за 0:23, P-II 400 за 3:23)
- Время выполнения 4-х параллельных компиляций - 2:13, 2:14, 2:14, 2:14
среда, 24 июня 2009 г.
3Com® Gigabit Switch 5 3CGSU05A.
Вслед за модернизацией домашнего сервака, проапгрейдил домашнюю сеть до гигабитной. В качестве свича остановился на трикомовском гигабитнике.
Свич оказался меньше, чем казался на фотографии на сайте.
Вживую он выглядит поприличее чем на фото.
И наконец-то он в действии.
Свич оказался меньше, чем казался на фотографии на сайте.
Вживую он выглядит поприличее чем на фото.
И наконец-то он в действии.
пятница, 19 июня 2009 г.
Домашний сервер. Часть первая — выбор комплектующих.
Сейчас мой домашний сервер представляет из себя комп с процессором Pentium 400Mhz и 384Mb памяти. Главные задачи, которые я ставил перед собой, были сделать его еще тише, меньше по размерам и быстрее.
Сначала я подобрал комплектующие.
Уменьшить размеры можно только используя маленькие комплектующие :) поэтому я остановился на форм факторе mini-ITX. Для начала был выбран корпус, который я искал в ассортименте корпусов Inwin. К сожелению у них совсем небольшой выбор mini-ITX корпусов, но то что было вполне мне подошло, мой выбор пал на bm639. Встроенный в корпус блок питания выдает 120W с таким особо не разгуляешься, но для моих задач этого более чем достаточно.
Соответствуя моим условиям, все внутренности сервера должны быть тихими и, желательно, с пониженным энергопотреблением. Итак, в качестве процессора я решил брать Atom, более чем подходящий по всем параметрам, а так как я хотел все таки побыстрее, то искал Atom 330. Из материнских плат с таким процессором я нашел претендентов от Intel, Gygabyte и парочки нонеймов. Претендента от Gygabyte я отбросил, так как имел несколько раз неприятные глюки с их комплектующими, поэтому решил брать плату от Intel, хотя с интеловскими мамками особо и не работал. Из двух интеловских плат я выбрал модель без излишеств Intel Desktop Board D945GCLF2D.
Про память сказать особо нечего, я взял по максимуму сколько поддерживала материнская плата - 2Gb.
Осталось разобраться с винтом. Жесткие диски я просмотрел у всех основных производителей. Здесь победил WD cо своей серией Green Power. Они имеют пониженное энергопотребление и скорость врашения шпинделя 5400, что обеспечивает более тихую работу. Сначала я хотел брать 500Gb винт, но по акустическим параметрам лучше выглядел террабайтник WD10EVDS, который я в итоге и взял.
Все это я написал пока скачивалась Windows 7 64-bit для установки на новую систему. Ставить буду только для тестов, в итоге, все таки, на серваке обоснуется Fedora 11 :)
Во второй части статьи я выложу фотоотчет по сборке.
Вторая часть - Сборка.
Сначала я подобрал комплектующие.
Уменьшить размеры можно только используя маленькие комплектующие :) поэтому я остановился на форм факторе mini-ITX. Для начала был выбран корпус, который я искал в ассортименте корпусов Inwin. К сожелению у них совсем небольшой выбор mini-ITX корпусов, но то что было вполне мне подошло, мой выбор пал на bm639. Встроенный в корпус блок питания выдает 120W с таким особо не разгуляешься, но для моих задач этого более чем достаточно.
Соответствуя моим условиям, все внутренности сервера должны быть тихими и, желательно, с пониженным энергопотреблением. Итак, в качестве процессора я решил брать Atom, более чем подходящий по всем параметрам, а так как я хотел все таки побыстрее, то искал Atom 330. Из материнских плат с таким процессором я нашел претендентов от Intel, Gygabyte и парочки нонеймов. Претендента от Gygabyte я отбросил, так как имел несколько раз неприятные глюки с их комплектующими, поэтому решил брать плату от Intel, хотя с интеловскими мамками особо и не работал. Из двух интеловских плат я выбрал модель без излишеств Intel Desktop Board D945GCLF2D.
Про память сказать особо нечего, я взял по максимуму сколько поддерживала материнская плата - 2Gb.
Осталось разобраться с винтом. Жесткие диски я просмотрел у всех основных производителей. Здесь победил WD cо своей серией Green Power. Они имеют пониженное энергопотребление и скорость врашения шпинделя 5400, что обеспечивает более тихую работу. Сначала я хотел брать 500Gb винт, но по акустическим параметрам лучше выглядел террабайтник WD10EVDS, который я в итоге и взял.
Все это я написал пока скачивалась Windows 7 64-bit для установки на новую систему. Ставить буду только для тестов, в итоге, все таки, на серваке обоснуется Fedora 11 :)
Во второй части статьи я выложу фотоотчет по сборке.
Вторая часть - Сборка.
четверг, 18 июня 2009 г.
Обновление домашнего сервера.
Наконец-то руки добрались до обновления моего домашнего сервака. Вместо старенького Pentium II 400Mhz у меня будет Atom 330 :), благодаря этой платке Intel Desktop Board D945GCLF2D. Корпус взял этот. Ну а ставить буду одиннадцатую федору. Наверное займусь этим в выходные еще ведь надо докупить мозгов и винт.
четверг, 26 марта 2009 г.
Vim. Spaces vs Tabs.
Vim замечательный редактор, в котором почти все поддается настройке. Процесс редактирования почти никогда не обходится без использования отступов, как правило они выполняются табуляцией, но иногда требуется делать это некоторым количеством пробелов. Так например в языке программирования python рекомендуется делать отступы при помощи 4 пробелов. Vim позволяет легко переключаться с отступов по табам на отступы пробелами, за эти параметры отвечают 3 настройки:
На следующей схемке показано, за что каждый из параметров отвечает:
Тоесть, expandtab - включает замену табов на пробелы (:set expandtab для включения и :set noexpandtab для выключения), в значении softtabstop хранится количество пробелов, на которое подменяется таб (:set softtabstop=4), когда нажимается таб, в shiftwidth хранится количестов пробелов, на которое заменяется отступ, когда выполняется авто-отступ или операции << >>.
- expandtab
- shiftwidth
- softtabstop
На следующей схемке показано, за что каждый из параметров отвечает:
(нажимаем tab)
|<-softtabstop->|<-softtabstop->|
| |
print('ok') | (нажимаем enter)
|<-shiftwidth-->|<--shiftwidth->|
def is_vim_best(): | |
if(1 == 1): | |
if(2 == 2): |
return 'yes'
print('is vim best? - ' + is_vim_best())
Тоесть, expandtab - включает замену табов на пробелы (:set expandtab для включения и :set noexpandtab для выключения), в значении softtabstop хранится количество пробелов, на которое подменяется таб (:set softtabstop=4), когда нажимается таб, в shiftwidth хранится количестов пробелов, на которое заменяется отступ, когда выполняется авто-отступ или операции << >>.
среда, 25 марта 2009 г.
Используем 2+ провайдера с применением модуля CONNMARK
Еще один способ использования нескольких каналов в интернет, теперь с использованием модуля CONNMARK. Когда я с ним начинал знакомится все выглядело довольно просто, но в процессе настройки я столкнулся со множеством подводных камней.
Допустим мы имеем следующие правила маршрутизации:
Здесь IF - интерфейсы нашего роутера, смотрящие к провайдерам, IP - внешние айпишники, P - шлюзы, P_NET - провайдерские подсети, PC - ПК во внутренней сети.
Допустим на PC у нас работает SMTP сервер, и необходимо чтобы он обрабатывал соединения поступающие на любой из внешних адресов. Для этого понадобятся правила DNAT:
И следующий набор правил:
В первой строке мы восстанавливаем маркер, установленный модулем CONNMARK, причем необходимо явно указать, что применяется это к пакетам идущим из внутренней подсети, либо добавить в таблицы маршрутизации пути к локальной подсети, иначе некорректно будут отрабатыватся правила DNAT. Все новые пакеты отправляются на маркировку в пользовательскую цепочку CT вот она:
Пакеты маркируются в соответствии с интерфейсом получения. В принципе маркировать пакеты, приходящие на интерфейс по умолчанию не обязательно. Вот и все, если не считать правил, разрешающих прохождение пакета.
Допустим мы имеем следующие правила маршрутизации:
#!/bin/bash
IF1=eth1
IF2=eth2
IP1=xx.xx.xx.xx
IP2=xx.xx.xx.xx
P1=xx.xx.xx.xx
P2=xx.xx.xx.xx
P1_NET=xx.xx.xx.xx/24
P2_NET=xx.xx.xx.xx/24
PC=xx.xx.xx.xx
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P1 metric 10
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip rule add fwmark 2 table T2
Здесь IF - интерфейсы нашего роутера, смотрящие к провайдерам, IP - внешние айпишники, P - шлюзы, P_NET - провайдерские подсети, PC - ПК во внутренней сети.
Допустим на PC у нас работает SMTP сервер, и необходимо чтобы он обрабатывал соединения поступающие на любой из внешних адресов. Для этого понадобятся правила DNAT:
$IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_PRIM -d $GLOBAL_IP_PRIM -p tcp --dport 25 -j DNAT --to-destination $PC
$IPTABLES -t nat -A PREROUTING -i $GLOBAL_ETH_SEC -d $GLOBAL_IP_SEC -p tcp --dport 25 -j DNAT --to-destination $PC
И следующий набор правил:
$IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -m state --state ESTABLISHED -j CONNMARK --restore-mark
$IPTABLES -t mangle -A FORWARD -i $GLOBAL_ETH_PRIM -m state --state NEW -j CT
$IPTABLES -t mangle -A FORWARD -i $GLOBAL_ETH_SEC -m state --state NEW -j CT
В первой строке мы восстанавливаем маркер, установленный модулем CONNMARK, причем необходимо явно указать, что применяется это к пакетам идущим из внутренней подсети, либо добавить в таблицы маршрутизации пути к локальной подсети, иначе некорректно будут отрабатыватся правила DNAT. Все новые пакеты отправляются на маркировку в пользовательскую цепочку CT вот она:
$IPTABLES -t mangle -N CT
$IPTABLES -t mangle -A CT -i $GLOBAL_ETH_PRIM -p tcp --dport 25 -j CONNMARK --set-mark 1
$IPTABLES -t mangle -A CT -i $GLOBAL_ETH_SEC -p tcp --dport 25 -j CONNMARK --set-mark 2
Пакеты маркируются в соответствии с интерфейсом получения. В принципе маркировать пакеты, приходящие на интерфейс по умолчанию не обязательно. Вот и все, если не считать правил, разрешающих прохождение пакета.
Подписаться на:
Сообщения (Atom)