четверг, 28 января 2010 г.

LVM спасет винчестеры. Простое управление разделами

Logical Volume Manager - это очень полезная штука, позволяющая легко и гибко манипулировать дисками и разделами. Только название у нее страшное, а мануалы еще страшнее. Я постараюсь на пальцах, не прибегая к источникам, объяснить как это работает, затрагивая лишь аспекты домашнего использования. Примитивно, но достаточно для начала.


Разберемя, что такое LVM и что он нам дает. У Вас есть второй (третий, пятый) винт? Они маленькие, но их несколько. Так часто решается проблема нехватки свободного места. Но вот что неудобно - куча разделов. Хотелось бы иметь один большой раздел, а не много маленьких, и не заморачиваться вопросами "на каком разделе у меня осталось место" или "на какой диск я кинул тот файл". Словом, избавиться от беспорядка. И тут приходит на помощь LVM. Он позволяет Вам магическим образом соединить все накопители в один, и больше не задумываться о том, как эффективно распределить разделы между дисками. А может у Вас всего один винт, но Вы собираетесь приобрести второй? Тогда LVM поможет Вам увеличить уже имеющиеся разделы за счет нового накопителя. Или же все-таки у Вас один винчестер и второй заводить Вы не собираетесь? Ну, я надеюсь, раздел-то у Вас не один? Как минимум один для системы и второй для личных файлов? И, скажем, места для системы стало нехватать? Тогда LVM снова придет к Вам на помощь. Вам не придется часами двигать разделы по всему винту. Достаточно освободить место в любой его части за счет уменьшения одного из разделов, и это свободное место тут же может быть приклеено к любому другому разделу, где бы он не находился.

Словом, Вам больше не нужно задумываться о физической конфигурации жестких дисков. Все, о чем Вы задумываетесь - это назначение разделов и объем доступного места. В дополнение к этому мы имеем такие удобства, как человеческие названия разделов вместо нумерации, расширение разделов на лету без остановки системы, создание снимка раздела без остановки системы, и, возможно, что-то еще, в чем я еще сам не разобрался :)

Чего LVM вашей системе точно не добавит - так это надежности. Выход из строя одного из физических носителей может повлечь за собой утрату данных со всех разделов. Однако, о резервных копиях Вы должны побеспокоиться в любом случае, так как ничто не вечно, и поломка жесткого диска - это лишь вопрос времени. Так что, советую не играть в русскую рулетку со своими файлами, а делать резервные копии настолько часто, насколько это важно для Вас.

Теперь поговорим о внутренностях. Название системы переводится как "менеджер логических томов". Логические разделы (Logical Volume, они же тома) - это то, что мы получаем в итоге при использовании LVM. На них мы живем, их мы форматируем в нужные нам файловые системы, на них мы и храним свои файлы. В папке /dev они также, как и обычные физические разделы, доступны в виде файлов. Вот мои логические разделы:

$ sudo ls /dev/vg0/
lv_home lv_root 

У меня их всего два, больше мне не надо. Вот только проблема состояла в том, что в приобретенном мною eee pc всего два маленьких флешовых накопителя: примерно 4 и 14 гектаров. Для системы мне 4 мало, а 14 много. В общем - ни туда, ни сюда. Так я и стал разбираться с LVM.

Все пространство, выделенное под логические тома, называется группой томов (Volume Group). Я бы назвал это логическим диском. Как физический диск состоит из томов, так и группа томов состоит из логических томов. Отличие в том, что тут работают другие "законы физики". Логические тома вовсе не обязаны физически быть расположенными друг за другом и непрерывно. Они состоят из кусочков, которые распределяются по всей группе в соответствии с указанной политикой распределения. А группа томов может увеличиваться или уменьшатсья в размере за счет присоединения или отсоединения устройств. Любой раздел можно увеличить за счет имеющегося свободного пространства. И если понадобилось дополнительное место для какого-то раздела, его можно освободить за счет уменьшения любого другого логического тома. При этом вовсе не нужно двигать разделы, чтобы переместить свободное место под нужным том. Расширяемый том заполнит свободное пространство, где бы оно не находилось. В итоге, кусочки логического раздела могут быть физически разбросаны по носителям. Но нам до этого никакого дела. В том и прелесть. Все, о чем мы задумываемся - размер разделов. Где и как они физически расположены - это не важно.

У меня всего одна группа разделов. Я назвал ее vg0. Но их может быть и несколько. Однако, я не могу себе представить, зачем мне лично это может быть нужно в домашних условиях. Если Вам вдруг покажется, что в вашем случае их нужно несколько, то имейте в виду: группа томов не так гибка как логические разделы. Если планируете изменять размер одного раздела за счет другого, держите их в одной группе. Иначе теряется вся простота использования, и далее Вы увидите почему.

Киты (или слоны, если хотите), на которых стоит группа разделов - это физические разделы. Их не нужно форматировать в какую-то файловую систему. LVM использует данные ему разделы целиком и полностью, паспределяя по ним кусочки логических томов. Отсюда название "группа разделов" приобретает некий двойственный смысл. С одной стороны это группа логических разделов, с другой - физических. Важно понимать, что как только Вы присоединяете физический раздел к группе, теряется возможность изменять его размер. Это как пилить ветку, на которой сидишь. И если Вы захотите в будущем отсоединить физический раздел от группы, чтобы изменить его размер или вообще целиком отдать другой системе, нужно будет перенести все данные с него на другие разделы. Конечно, Вам не придется вручную переставлять байты и блоки, LVM может сделать это для Вас. Но отмонтировать все файловые системы таки придется. Еще более важно осознавать, что если у Вас всего один винт с одним разделом, и Вы устанавливаете на него LVM, то освободить место под другую систему (под Windows например) будет затруднительно. Так что, если подозреваете такую возможность, то побейте винт сразу на несколько физических разделов, прежде чем скармливать его менеджеру логических томов.

И если с китами и слонами есть некоторые нюансы, то с черепахой, на которых они стоят, все просто. Физический накопитель просто является носителем физических разделов, используемых LVM. Он также может иметь и другие разделы, отформатированные под определенные файловые системы. Это не будет иметь никакого отношения к LVM. Нет разницы на каком диске находится физический раздел. Может быть только разница в скорости чтения/записи. Если это важно, то в момент создания логических томов можно заставить их использовать определенные физические тома по вашему усмотрению.

Получаем вот такую иерархию понятий снизу вверх: накопитель, физический том, группа томов, логический том. Все просто, но легко запутаться. Особенно, если групп несколько. Если она одна, то на нее, как на понятие, можно вообще по большому счету не обращать внимание. Тогда получаем упрощенную модель: логические тома располагаются на физических. Каждый логический том может лежать одновременно на нескольких физических томах. Причем он не обязан заполнять их полностью. Более того, по умолчанию LVM будет распределять каждый логический раздел по разным физическими носителями (наверное, для распределения нагрузок).

Я думаю, это все, что нужно понимать для начала. Довольно теории. Перейдем к практике. Так сказать, how to use.

Возьмите ваш винчестер и разбейте его. Не о пол конечно, а на разделы. И используйте его с LVM. Это все. Пакет называется lvm2, список команд найдете в официальном мануале или в гугле. При установке убуты, если воспользоваться консольным установщиком, можно сразу разметить диск под LVM. Только boot поместите в обычный раздел (метров 100-200 хватит), чтобы grub не растерялся, пытаясь загрузить вашу систему. Для управления всем этим делом можно воспользоваться хорошей графической утилитой: kvpm. Там все просто. И не забудьте о резервных копиях. Теперь точно все.

воскресенье, 24 января 2010 г.

Удаленное воспроизведение звука

Зачем оно надо?


(Для тех, кто еще не осознал смысл жизни)

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


Простой способ


Подходит для локальной сети, в которой вам некого опасаться.

Устанавливаем PulseAudio как на клиенте так и на сервере, если оно еще не стоит. На компьютере с подключенной акустикой устанавливаем paprefs, запускаем и разрешаем подключение через сеть. На клиентской машине запускаем приложение вот такой командой:

$ PULSE_SERVER=<server address> <application>

И наслаждаемся воспроизведением.

Стоит отметить, что это работает только для приложений, использующих PulseAudio для вывода звука. Для приложений ESound нужно также установить пакет pulseaudio-esound-compat (название пакета может отличаться в вашем дистрибутиве). Приложения OSS нужно запускать через padsp, например вот так:

$ PULSE_SERVER=192.168.2.3 padsp vlc

Хотелось бы еще как-то добавить удаленный звуковой сервер в настройки KDE 4, чтобы совсем без консоли... Но пока не знаю как это сделать.

Безопасный способ


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

Делаем перенаправление порта с локального компа на удаленный через SSH:

$ ssh -L4000:localhost:4000 192.168.2.3

Делаем перенаправление сетевого сокета на юниксовый на сервере:

remote$ socat TCP-LISTEN:4000,fork UNIX-CONNECT:/tmp/pulse-$USER/native

Слушаем музон

$ PULSE_SERVER=localhost:4000 paplay my_music.wav

пятница, 15 января 2010 г.

qBittorrent - лучший BitTorrent клиент

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

Первое, что бросается в глаза при взгляде на клиент qBittorrent - это приятный глазу и простой для восприятия графический интерфейс. На это приложение не только приятно смотреть, но оно к тому же простое и понятное в использовании.



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

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



Программа отлично работает, в том числе и с torrents.ru. Никогда не наблюдал проблем с раздачами.

Есть возможность написать поисковые плагины, так что поиск по трекеру можно осуществлять прямо из программы, не заходя на сайт. Система плагинов довольно проста, используется Python, есть примеры, так что я без труда написал плагин для поиска по torrents.ru, когда еще только начинал знакомиться с языком программирования Python. Один хороший товарищ был столь любезен, что сделал то, до чего у меня так и не дошли руки: выложил его в интернет. Плагину не помешает доработка, так что все желающие могут приложить свою руку :)
http://code.google.com/p/qbittorrent-plugins/

Одна из самых замечательных на мой взгляд возможностей - это опция последовательной закачки. В этом режиме файл качается начиная с начала и заканчивая концом, а не хаотично как обычно. Это дает возможность начать смотреть фильм еще до того, как он полностью скачался. Для меня это крайне важно, потому что нередко настроение что-то посмотреть появляется спонтанно, тогда как ничего к просмотру заранее не заготавливалось. Такую возможность я больше нигде не видел.

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

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

вторник, 5 января 2010 г.

Простое переключение мониторов

Поставил KDE4 на ноут. И если в Ubuntu кнопка переключения дисплеев хоть как-то работала, то в Kubuntu она оказалась совсем не функционирующей. Нашел простое элегантное решение, требующего всего пары движений надфилем.

Вот здесь я нашел рецепт автоматического включения внешнего монитора при загрузке системы.

http://linux-tipps.blogspot.com/2009/03/automatically-switch-to-connected.html

Решение показалось мне достаточно простым и элегантным, чтобы прибегнуть к нему. Немного адаптировал команду под свои нужды и вот что получил:

xrandr -q | grep 'VGA1 connected' \ 
&& xrandr --output LVDS1 --off --output VGA1 --auto \
|| xrandr --output LVDS1 --auto --output VGA1 --off

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

Если б еще сделать как-то, чтобы команда запускалась сама при подключении/отключении монитора - было бы вообще супер.

MacOS vs Linux - заключение

Несколько месяцев (не менее трех) постоянной бескомпромиссной всесторонней работы с маком провели меня по следующей цепочке отношений к этой системе:

- Нах мне эта фигня?
- Ну и как с этим работать?
- Блин, как не удобно!
- Как сделать чтоб как в Линуксе?
- Ладно, привыкну как-нибудь.
- Блин, а таки удобно.
- О, и это оказывается можно решить!
- Я тащусь.
- Я просто тащусь! Как все просто и удобно и по-человечески!
- Блин, опять повисло... Ну, с кем не бывает.
- Черт, что за глюк?
- Ну да, удобно, но как сделать то что я хочу?
- Прст... Почему у всех работает а у меня нет?
- Хочу apt!!!!!! Говнофинк и тормопортс не предлагать.
- Итить твою за ногу... Ну почему он постоянно глючит!
- Что, и здесь глюки? Да венда и то стабильнее будет.
- Тут хоть что-нибудь будет работать нормально???
- Все! Нах мне эта фигня, да еще и за такие деньги!

Вот так. Может мне просто повезло... А может я просто пытался сделать с ним больше, чем посмотреть фотки (кстати, тоже глючит)... Так или иначе, я снова сел за линукс. Он куда более готов к десктопу, чем мак. А мой макбук ищет нового хозяина.