Делаем из нетбука карманный web-сервер.

На данный момент мощность большинства мобильных устройств класса ноутбук или нетбук вполне достаточна для того, чтобы использовать их в качестве легкого, мобильного сервера. Я не вытерпел и сделал из своего нетбука Asus EeePC 900 сервер, который выступает в роли WEB-сервера (LAMP), хранилища для файлов (FTP) и кода (GIT, GitWeb)… И для этого достаточно пары-тройки часов времени, нетбук, интернет и дистрибутив Debian (в целом можно и другой, но я предпочитаю его, как простой и удобный).
Читать далее «Делаем из нетбука карманный web-сервер.»

Установка и настройка Ubuntu 10.04 «Lucid Lynx» на компьютер с Ubuntu: часть 1 — подготовка

Ubuntu 10.04Данный цикл заметок будет рассказывать о том, как установить и настроить Ubuntu 10.04 «Lucid Lynx» на компьютер, на котором уже установлена Ubuntu предыдущей версии. Путь установки ОС заново, а не обновления, выбран по нескольким причинам:

  1. На некоторых компьютерах установлены версии Ubuntu 9.04, Ubuntu 8.10, Ubuntu 8.04 или даже более ранние;
  2. Из-за постоянного экспериментирования на компьютере скопилась куча ненужных программ, файлов конфигураций и прочего мусора, от которого хочется избавиться.

Цикл будет состоять из нескольких частей:

Читать далее «Установка и настройка Ubuntu 10.04 «Lucid Lynx» на компьютер с Ubuntu: часть 1 — подготовка»

Это страшное слово – «виртуализация». Часть третья, заключительная. У страха глаза велики.

Итак, настал момент истины, и я пишу заключительную часть про виртуализацию.
Для тех, кто не в курсе, здесь первая часть (в которой я описываю, с чего все началось и как сделать), здесь вторая часть (в которой я предостерегаю от некоторых технических ошибок). Ну а сейчас пойдет речь о том, что же делать, если приходится переустановливать систему (к примеру мигрируя на другую платформу) и напоследок небольшая фотосессия.

Итак, с чего же я начну… Став счастливым обладателем еще 4Гбайт оперативной памяти, 2-х терабайтников от WD и пары вентиляторов, я пришел к мысли, что надо не просто поставить все это в сервер, но и заодно воспроизвести ситуацию с переустановкой системы.
Для начала напомню и дополню свою конфигурацию сервера:

— процессор AMD Phenom X4 9550 SocketAM2+ (2.20GHz, 4Mb, 1800MHz) (я сторонник AMD, так уж вышло);
— плата MB ASUS sAM2+ M3A78 AMD 770 DDR2 ATX (выбирал по доступности и с наличием RAID, что в итоге оказалось не совсем корректным, читайте в первой части);
— оперативная память 8Гбайт (всего четыре планки по 2Гб, максимум для материнки);
— жесткие диски, 4 по 1Тб (объединены по два в RAID-1, один на более отказоустойчивых для активной работы, второй на попроще дисках для малоиспользуемых файлов относительно первого);
— операционная система Debian Lenny x86_64.

Перед тем, как переустанавливать, я естественно сохранил настроечные документы. И вы не забудьте тоже их сохранить, дабы заново не изобретать велосипед.
Что же изменилось, помимо добавления в аппаратной начинке? А изменению у меня подвергнутся виртуальные настройки. Я заранее распределю на разные сетевые карты виртуалки по признаку активности с внешним миром, повесив на отдельную сетевую карту внешние. Описывать там особо нечего, кроме того, что для этого я создал два бриджа, вместо одного и при настройке виртуальной машины прописывал нужный бридж. Плюс ко всему я перетаскиваю rtorrent с виртуальной на хостовую машину, т.к. столкнулся с неприятными особенностями работы nfs при большом кол-ве открытых файлов. Количественно это может и не много, около 200 одновременно открытых файлов, но от этого начинались жуткие тормоза раздачи, что меня не устраивало.
Как установить чистую систему, не потеряв нужных данных, вы и без меня знаете наверняка. Остановлюсь на важных и болезненных моментах, по моему мнению:

— виртуальные машины воспроизвелись без проблем, путем простого наката папки /etc/libvirt из бекапа (изменения вступили в силу после перезагрузки, единственное что поправил — это пути до образов жестких дисков и названия бридж-интерфейсов);
— при настройке второго рейда не торопитесь его использовать, лучше дождитесь окончательной синхронизации (хотя пользоваться им можно и сразу, но из-за фоновой синхронизации будут ощутимые потери в производительности).

Хм… что-то мало болезненных моментов, не правда ли? Ну так не забываем, что перед нами операционная система Linux, которая гораздо гибче и стабильнее Windows, так что сомнений быть больше у Вас не должно. В остальном никаких проблем не возникло, так что смело можете при необходимости переставлять систему, не боясь потерь.
Напоследок несколько фото, как выглядит в живую и со стороны ПО мой сервер (за качество не ругайте, снято на коммуникаторе):





Это страшное слово – «виртуализация». Часть вторая. Не повторяйте чужих ошибок.

Получив в распоряжение мощный инструмент в виде сервера виртуализации я сразу попытался по максимуму его задействовать в своих задачах.
Попользовав его в достаточном количестве, обнаружил некоторые тонкости и нюансы, которыми и хочу с вами поделиться.

1. Если предполагаете использовать серверы раздельно для сети и для интернета, лучше сразу запланировать/приобрести/настроить минимум две сетевые карты. Во-первых, работать будет шустрее. После разделения на две сетевые карты скорость по внутренней сети стала около 10Мбайт/с, тогда как в случае единственной сетевой карты скорость скакала от 2 до 6Мбайт/с. Во-вторых, как выяснилось, на уже настроенной на один интерфейс виртуальной машине при смене активного интерфейса начинаются непонятные явления, потери пингов и т.п. (Windows Server вообще потерял сеть, например, а rtorrent просто зависал).
2. Разделяйте на разные физические разделы данные, используемые с ощутимо разной интенсивностью. Т.е. если вы планируете раздавать файлы по пиринговой сети, ftp и локальной сети, то лучше сохранять эти файлы на отдельном разделе, по минимуму смешивая с теми, которые используются другими виртуальными машинами. Благо современные средства монтирования файловых систем позволяют в одну папку монтировать одновременно несколько физических разделов.
3. Если вы используете в качестве гостевой системы Linux, то по возможности приближайте ее к варианту, который стоит на хосте. Т.е. в моем случае это Debian Lenny. Сервер LAMP+FTP+Ubuntu работал относительно нестабильно в плане сетевой активности, в отличие от связки LAMP+FTP+Debian…
4. Если планируется очень большая активность файловых операций (типа раздача более 100 торрентов одновременно), то советую в этом случае отказаться от использования виртуальной машины и настроить сервер непосредственно на хосте. Это позволит избежать значительных потерь в производительности (к примеру хешироваться файл для торрент-раздачи на хосте будет раз в 10 быстрее, чем в виртуальной машине через nfs).

LAMP на ноутбуке

LAMP — это аббревиатура от Linux Apache MySQL PHP. То есть это полноценный Web-сервер. Так как ноутбук это мобильное устройство, а в моём случае это даже не ноутбук, а нетбук MSI Wind, то я его часто ношу с собой. Иногда между встречами образуется достаточно серьёзный промежуток времени и его хочется потратить с большей продуктивностью. Поэтому я и решил установить на нетбук LAMP. Установка LAMP описана очень подробно во многих источниках, но при установке у меня было одно маленькое требование, которое нигде, где я смотрел, не описано.

Читать дальше

Домашний сервер

После переноса всего рабочего процесс на MSI Wind у меня остался компьютер, который начал простаивать. Так как компьютер полностью рабочий, то меня это несколько расстраивало. После некоторых раздумий и прикидок я решил сделать этот компьютер домашним сервером. Итак, что на нём должно работать?

  • WEB сервер, то есть LAMP с phpMyAdmin, для хранения моих небольших проектов во время проектирования и создания, а также для изучения открытых систем и системного администрирования;
  • SVN для контроля версий систем моих небольших проектов;
  • Trac для управления моими небольшими проектами;
  • Torrent клиент, то есть rTorrent, для поддержания лозунга — «Искусство должно принадлежать народу».

Сейчас я настроил только LAMP, SVN и Trac. И дальше пойдёт некоторое повествование как это сделать. С rTorrent есть несколько затруднений, поэтому о нём я напишу чуть позже.

Установить LAMP, имея диск Ubuntu Server 8.04.1, не составляет никакого труда. Поэтому заострять на этом внимания я не буду. Тем более в Сети уже полно руководств по настройке сервера под контролем Ubuntu. Как на английском с картинками, так и на русском, но без картинок.

Установку SVN и Trac я выполнял по инструкции. Проблем никаких не возникло.

Но так как мне нужно чтобы в единый момент времени на сервере работало сразу несколько проектов, то есть было несколько сайтов на одном сервере, то нужно правильно сконфигурировать Apache. Для этого открываем для редактирования файл конфигурации хостов Apache:

sudo nano /etc/apache2/sites-available/default

Файл должен выглядеть примерно так:

# Эта строчка говорит о том что на сервере будет несколько сайтов
NameVirtualHost 10.5.5.11:80
# Конфигурируем первый хост. Набор данных взят из файла по-умолчанию.
<VirtualHost 10.5.5.11:80>
ServerAdmin webmaster@localhost
ServerName project1
DocumentRoot /home/serg/www/

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory «/home/serg/www»>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ «/usr/share/doc/»
<Directory «/usr/share/doc/»>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

# Конфигурируем второй хост. Используем только то, что нужно
<VirtualHost 10.5.5.11:80>
ServerName project2
DocumentRoot /home/serg/www2
<Directory «/home/serg/www2»>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Где:
10.5.5.11 — IP адрес компьютера в локальной сети

Теперь нужно упросить Apache прочитать новые настройки. Благо он не девушка, поэтому это сделать совсем не сложно:

sudo /etc/init.d/apache2 force-reload

На компьютере с которого будет производиться обращение к серверу нужно сделать следующее: перейти в меню Система — Администрирование — Сеть. Разблокировать окно для редактирования. Перейти на вкладку Узлы и добавить параметры:
IP-адрес: 10.5.5.11 (это адрес сервера в моей сети, у вас скорее всего будет другой)
Псевдонимы: project1 project2 (здесь нужно указывать то, что было написано в директивах ServerName у каждого VirtualHost):
Свойства псевдонимов узла // meAndUbuntu.blogspot.com
В результате получим что-то типа:
Сетевые параметры // meAndUbuntu.blogspot.com

Теперь, при включённом домашнем сервере, я могу набрать в строке браузера http://project2 и посмотреть как работает проект после последних изменений.

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru