17 Фев

Изменения на Facebook

Не понимаю, зачем сделали это изменение в галерее на Facebook? Теперь фотография в какой-то практически траурной черной рамочке. Раньше было куда лучше, а сейчас такое ощущение, что дезайнерам мало заплатили — блок просмотра фотографии совершенно не вписывается в общий дизайн Facebook.

Facebook превращается в какой-то демотиватор…

17 Фев

Конвертация BTRFS

Сегодня расскажу, как можно «пощупать» btrfs без установки ОС заново и без переносов данных.
Конечно, на 100% я не могу вам гарантировать, что все ваши данные сохранятся, посколькуконвертация — это всегда риск. Но все эти действия я провел на домашнем стационарном компьютере и на своем старом ноутбуке — все данные остались на месте и ни с какими проблемами я не столкнулся.
И, в любом случае, конечно, в идеале лучше «щупать» новую файловую систему на отдельном разделе, где btrfs установлена с самого нуля.

Скажу честно, что конвертировать в btrfs я пробовал только ext3. Поскольку с остальными ФС я такие эксперименты не проводил, соответственно, ничго по этому поводу сказать не могу.

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

btrfs convert ext2/3


Утилита btrfs-convert создаёт полную копию метаданных исходной файловой системы ext3, а блоки данных получают адресацию в нововообразованной файловой системе btrfs. Новые же данные, записанные уже в btrfs, используют «пустые» блоки внутри бывшей ext3. Для чего, разумеется, эти блоки должны иметь место быть — то есть для целиком заполненной файловой системы конвертация, теоретически может повлечь ошибки, но это лишь теория, я такого не проверял.

Благодаря этому возможен «откат» к предыдущему состоянию — то есть восстановление ext3 в её первозданном виде, с потерей всего, что было записано после конвертации. А можно, напротив, удалив файл образа ext3, сделать конверсию перманентной — без возможности «отката», но зато с высвобождением дискового пространства, занятого реликтами прежней файловой системы.

И так. Файловую систему ext3 можно превратить в btrfs, и работать с ней дальше уже как с новой файловой системой. Причём состояние исходной файловой системы ext3, будет доступно и потом. Важно — запускайте перед конвертацией FSCK! Перед конвертацией ext3-раздел крайне желательно размонтировать :). Но fsck, в любом случае, не будет нормально проверять смонтированную ФС.
Теперь от теории к практике. Допустим, есть у нас раздел sda4, смонтированный из /etc/fstab в /mnt/media. В большенстве дистрибутивов btrfs-convert не входит в стандартный пакет btrfs-progs, а это значит, что нам необходимо будет ставить ее отдельно средствами ваших пакетных менеджеров. Но и эта возможность мало где есть. Поэтому делаем универсальным способом, о котором пишут разработчики.
Скачиваем исходники btrfs-progs, идем в директорию с исходниками и

make convert && sudo make install convert

Теперь можно размонтировать наш подопытный раздел:

umount /mnt/media

И, как велит документация:

fsck.ext3 -f /dev/sda4

И конвертируем:

btrfs-convert /dev/sda4

Теперь можно смонтировать раздел как btrfs на старое место:

mount -t btrfs /dev/sda4 /mnt/media

После монтирования можно посмотреть сожержимое нового раздела и убедиться, что все наши файлы лежат на своем месте.
Но сразу вы заметите, что помимо старых файлов, там же появилась новая директория ext2_saved/ с единственным файлом — image. Это тот самый образ исходной файловой системы, который и позволит выполнить обратное преобразование в неё в случае необходимости.

Конвертировать обратно мы будем исключительно интереса ради и опыта для. Но сперва создадим в нашей новой файловой системе что-нибудь новое. Кстати, все атрибуты файлов, такие как владелец и права доступа — сохранятся и в новой файловой системе. И так, копируем директорию с чем-либо в нашу новую файловую систему:

cp -R /home/vit/img /mnt/media

B через ls убедимся, что все скопировалось успешно. Затем:

 # umount /mnt/media
# btrfs-convert -r /dev/sda4
rollback complete
# mount /dev/sda4 /mnt/media

И теперь просмотр каталога /mnt/media/ показывает полную идентичность его содержимого исходному: каталог ext2_saved/ и img исчезли без следа.
Не могу сказать точно почему, но после этого я вам не советую снова воссоздавать на этом разделе btrfs, поскольку спятся ошибки. При этом раздел можно даже смонтировать, но доступа к нему вы не получите и отхватите такое количество процессов-зомби, что….. вобщем, я так и не смог нормально ихубить стандартным kill -9.
Так что поверьте на слово — лучше этого не делать: либо оставайтесь на btrfs, либо откатывайтесь на ext3 и обратно больше на этом разделе c btrfs не экспериментируйте…

В /etc/fstab для монтирования btrfs-раздела достаточно в поле с указанием файловой системы написать btrfs вместо ext2/3.

17 Фев

В Харькове во время визита Януковича венки прикрепили цепями

Вчера, 15 февраля, Президент Украины в Харькове, кроме прочего, принял участие в церемонии возложения цветов к памятнику воинам-афганцам.

Организаторы мероприятия решили избежать повторения казуса, случившегося с Януковичем в мае, когда на него упал венок, и прикрепили венки к металлическим опорам цепями. Такое довольно странное крепление было тщательно замаскировано, однако не ускользнуло от объективов фотографов.

Церемония возложения цветов прошла без эксцессов.

17 Фев

Обзор возможностей BTRFS

Сегодня обнаружил интересный факт, что очень много людей попадают на мой блог через поисковики после запроса «btrfs». Не знаю, почему так происходит, учитывая, что у меня в блоге btrfs пока встречается только в кратком обзоре Debian Squeeze. Но факт есть факт.
Да и многие пока очень мало знают что-либо про btrfs. А знать стоило бы, файловая система, действительно, очень интересная и содержит просто огромную кучу функционала.

По этим причинам я решил написать небольшую статью, чтобы познакомить интересующихся с этой Файловой Системой.

В 2006 году летом в Сан-Хосе состоялся саммит разработчиков файловых систем. Сразу после этого саммита Крис Мэсон начал работу над созданием новой файловой системой BTRFS. И очень усердно.
Уже в начале 2007 года в списках рассылок разработчиков ядра Linux он сообщил, что первые результаты уже готовы. На тот момент он успел написать «10 547 строк слабо комментированного кода» и приглашал народ к тестированию.

В ноябре 2007 года происходит встреча разработчиков файловых систем, посвящённая вопросу создания файловой системы нового поколения для Linux (next generation filesystem, NGFS). На встрече присутствуют инженеры компаний Oracle, IBM, Intel, HP и Red Hat, принимающие участие в разработке файловых систем ext2, ext4, OCFS2, lustre, btrfs, AdvFS, Reiser4 и XFS.
В результате было решено, что:

  • Linux файловая система нового поколения необходима;
  • Файловая система Криса Масона, называемая btrfs, наиболее хорошо подходит на роль такой файловой системы;
  • Разработка файловой системы нового поколения и переход на неё будут осуществляться продолжительное время, и на этом этапе в качестве основной файловой системы стоит использовать ext4.

В начале 2009 года файловую систему btrfs включили в ядро Linux. Разработка btrfs далека от завершения. Предполагается, что промышленная эксплуатация btrfs будет возможна не ранее 2010 года.

Чем так интересна btrfs? Она включает в себя функционал различных файловых систем.
Многие называют btrfs свободным клоном ZFS — это совершенно неверно. ZFS отличная файловая система, но она не была включена я ядро linux по причине лицензионных конфликтов linux и zfs. В btrfs есть две особенности, идеи которых били позаимствованы у ZFS:

  • Как и ZFS, btrfs интегрирует в свой состав программный RAID
  • btrfs позволяет делать снимки данных ФС (snapshots)

Основные возможности btrfs:

  • Проверка целостности без размонтирования;
  • Записываемые снимки (writeable snapshots);
  • Динамическое выделение индексных дескрипторов (динамические иноды, dynamic inodes);
  • Контрольные суммы данных и метаданных;
  • Интеграция с device-mapper;
  • Поддержка RAID-массивов (одна файловая система на нескольких томах);
  • Сжатие;
  • Подтома (subvolumes);
  • Эффективное клонирование файловой системы и создание инкрементальных архивов;
  • Дефрагментация смонтированной файловой системы.
  • Поддержка сложных многодисковых конфигураций — RAID уровней 0, 1, 5, 6 и 10, а также реализация различных политик избыточности на уровне объектов ФС — то есть возможно назначить, к примеру, зеркалирование для какого-либо каталога или файла.
  • Copy-on-write (CoW) журналирование.
  • Контроль целостности блоков данных и метаданных с помощью контрольных сумм.
  • Зеркалирование метаданных даже в однодисковой конфигурации.
  • Полностью распределенное блокирование.
  • Поддержка ACL.
  • Защита от потери данных.
  • Выбор хэш-алгоритма.
  • Поддержка NFS.
  • Флаги совместимости, необходимые для изменения дискового формата в новых версиях btrfs с сохранением совместимости со старыми.
  • Резервные копии суперблока, по крайней мере — по одной на устройство.
  • Скоростные приоритеты для дисков.
  • Гибридные пулы. btrfs старается перемещать наиболее используемые данные на самое быстрое устройство, вытесняя с него «залежавшиеся» блоки. Эта политика хорошо согласуется с появившейся недавно моделью использования SSD (Solid State Drive).
  • Балансировка данных между устройствами в btrfs возможна сразу после добавления диска к пулу, отдельной командой — а не только постепенно, в процессе использования (как это реализовано в ZFS).
  • Диски для горячей замены, поддержка которых появилась и в ZFS.

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

Разработчики Ubuntu не так давно обещали сделать btrfs файловой системой по умолчанию в ubuntu-10.10, но недавно перенесли свои планы на версию 11.04. Посмотрим, как будет в этот раз. Хотя выбирать btrfs при установке отдельно уже можно. Как, кстати, и в Debian Squeeze.

На сегодняшний день GRUB не умеет загружать ядро и скрипты из btrfs-разделов. Поэтому, в любом случае, /boot/-раздел необходимо держать на какой-либо другой ФС.

При помощи btrfs-convert можно сконвертировать, например, ext3 в btrfs, получив функционал btrfs без потери данных. Причем потом можно обращаться к этому разделу и как к ext3 и как к btrfs. Можно без проблем удалить образ btrfs, лишившись его же функционала или наоборот, удалить образ ext3, оставшись навсегда в btrfs.