Журнал LinuxFormat - перейти на главную

LXF167:Что за шту­ка

Материал из Linuxformat
Перейти к: навигация, поиск


Что за штука…BTRFS

Бен Эве­рард раз­гля­ды­ва­ет но­вей­шую фай­ло­вую сис­те­му Linux.

В

B-T-R-F-S? Язык сло­ма­ешь. Бо­лее про­из­но­си­мо­го ва­ри­ан­та нет?

О

Ну, неко­то­рые про­из­но­сят как “Butter FS”, дру­гие пред­по­чи­та­ют пол­ную фор­му: “B-Tree FS”. Кое-кто на­зы­ва­ет да­же “Better FS”, но это объ­яс­ня­ет­ся их шкур­ным ин­те­ре­сом к про­ек­ту.

В

F-S — это «фай­ло­вая сис­те­ма»? Фай­лы-то у ме­ня есть, а вот с сис­те­ма­ти­за­ци­ей, при­знать­ся, пло­хо­ва­то: хра­нят­ся они до­воль­но бес­по­ря­доч­но. Стало быть, она ме­ня спа­сет?

О

Ага. Ведь это со­вер­шен­но осо­бая фай­ло­вая сис­те­ма. Рас­по­ло­жение фай­лов и па­пок в при­выч­ном для вас ви­де – ре­зуль­тат струк­ту­ры ка­та­ло­гов, и в осно­ве ле­жит до­воль­но же­ст­кая сис­те­ма, да­же ес­ли вы это­го не за­ме­чае­те. На­при­мер, ва­ши лич­ные фай­лы хра­нят­ся в пап­ке home/<username>, уста­нов­лен­ные про­грам­мы – в дру­гом мес­те, сис­тем­ные жур­на­лы – то­же от­дель­но... но это я от­влек­ся. Глав­ное, что рас­по­ло­жение фай­лов к фай­ло­вой сис­те­ме не име­ет ника­ко­го от­но­шения. Фай­ло­вая сис­те­ма – это спо­соб ко­ди­ров­ки всей этой ин­фор­ма­ции на ва­шем же­ст­ком дис­ке (а так­же USB-но­си­те­ле, DVD или лю­бом дру­гом фай­ло­вом хранили­ще). Бла­го­да­ря им, ваш ком­пь­ю­тер удер­жи­ва­ет в па­мя­ти мно­же­ст­во но­ли­ков и единичек. Имен­но фай­ло­вая сис­те­ма по­зво­ля­ет ор­ганизо­вать склад дан­ных, что­бы вы мог­ли ра­бо­тать с фай­ла­ми и ка­та­ло­га­ми, не ду­мая о том, как или где они рас­по­ло­же­ны.

В

ОК, на­счет фай­ло­вой сис­те­мы по­нят­но. А что та­кое В-де­ре­во?

О

Де­ре­вья – это тип струк­ту­ры дан­ных, где ин­фор­ма­ция хранит­ся в уз­лах, со­еди­нен­ных вет­вя­ми. Ка­ж­дая ветвь обо­зна­ча­ет оп­ре­де­лен­ный тип от­но­шений. Чем точнее оп­ре­де­ле­ны эти от­но­шения, тем бы­ст­рее бу­дет до­ба­вить и най­ти дан­ные внут­ри струк­ту­ры.

B-де­ре­во – осо­бый тип де­ре­ва, где чис­ло по­том­ков ка­ж­до­го внут­реннего уз­ла ог­раничи­ва­ет­ся неким диа­па­зо­ном. На­при­мер, в B-де­ре­ве 2-3 у ка­ж­до­го уз­ла бу­дет 2 по­том­ка, 3 по­том­ка или ни од­но­го (в по­следнем слу­чае, узел не бу­дет внут­ренним). Ес­ли вы до­ба­ви­те по­том­ка к уз­лу, уже имею­ще­му еще три, он рас­па­дет­ся на два уз­ла, в ка­ж­дом из ко­то­рых бу­дет по два по­том­ка.

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

В

Вся эта ин­фор­ма­ти­ка, конеч­но, пре­крас­на, но что это зна­чит для мо­их фай­лов?

О

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

В

Э, по­го­ди­те ми­нут­ку. Не все сра­зу. Ска­жем, клониро­вание: по­ла­гаю, это ведь не ам­би­ци­оз­ный план соз­дания ар­мии штур­мо­ви­ков?

О

Вер­но, не он. Это эф­фек­тив­ный спо­соб соз­дания но­вой ко­пии фай­ла. Вме­сто соз­дания ко­пии ис­поль­зу­ет­ся но­вый ин­декс­ный де­ск­рип­тор, ука­зы­ваю­щий на те же бло­ки дан­ных.

В

В смыс­ле, же­ст­кая ссыл­ка? Да я уже сто лет этим поль­зу­юсь.

О

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

Для опе­ра­ций с от­дель­ны­ми фай­ла­ми это эф­фек­тив­но, но не ре­во­лю­ци­он­но. А вот при­менитель­но к боль­шим объ­е­мам дан­ных – уже впе­чат­ля­ет. К при­ме­ру, при соз­дании мгно­вен­ных сним­ков со­стояния сис­те­мы. Ис­поль­зуя клониро­вание, вы мо­же­те сде­лать снап­шот, прак­ти­че­­ски не за­би­рая до­полнитель­ное дис­ко­вое про­ст­ран­ст­во. Объ­ем дан­ных уве­ли­чи­ва­ет­ся, толь­ко ес­ли вы вно­си­те из­менения в фай­лы, и толь­ко за счет этих из­менений. А что­бы от­ка­тить к пер­во­на­чаль­но­му ва­ри­ан­ту, нуж­но немно­гим бо­лее, чем па­ра на­жа­тий кла­виш.

В

Так, с клониро­ванием ра­зо­бра­лись. Что там даль­ше?

О

Под­то­ма. Поч­ти та­кие же, как на дис­ке, толь­ко они су­ще­ст­ву­ют внут­ри фай­ло­вой сис­те­мы и не за­ви­сят от уста­рев­ших ог­раничений обо­ру­до­вания. В чем-то они на­по­ми­на­ют пап­ки, но управ­ля­ют­ся, как уст­рой­ст­ва. На­при­мер, при за­пуске на­строй­ки RAID.

Это по­зво­ля­ет бо­лее де­таль­но сле­дить за со­стоянием ва­ше­го хранили­ща дан­ных. Вам по-прежнему все по­нят­но?

В

Под­раз­де­лы внут­ри под­раз­де­лов? Ду­маю, что да.

О

От­лич­но. Про сжа­тие фай­ло­вой сис­те­мы уже по­нят­но из са­мо­го на­звания. Оно да­ет воз­мож­ность ис­поль­зо­вать ZLIB и LZO-сжа­тие на уровне фай­ло­вой сис­те­мы. То есть ва­ши фай­лы мо­гут ис­поль­зо­вать­ся как обыч­но, при этом занимая мень­ше мес­та. На­сколь­ко имен­но – за­ви­сит от ти­па фай­лов. Уже сжа­тые, та­кие как филь­мы в фор­ма­те MPEG, песни в MP3 и им по­доб­ные, умень­шат­ся незна­чи­тель­но, а тек­сто­вые фай­лы – на­мно­го за­метнее.

В

То есть вы бес­плат­но по­лу­чае­те боль­ше мес­та на дис­ке? Кру­то!

О

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

В

Яс­но. Ка­жет­ся, вы еще упо­ми­на­ли SSD? Име­ют­ся в ви­ду Solid Disk Drives — твер­до­тель­ные дис­ки?

О

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

С раз­ви­ти­ем фай­ло­вых сис­тем уда­лось умень­шить «шаг» та­ких уст­ройств (поч­ти как для иг­лы в про­иг­ры­ва­те­ле, или – для са­мо­на­де­ян­ных юн­цов – ла­зе­ра на CD). Но на SSD во­об­ще ниче­го не дви­жет­ся, так что об этих хит­ро­стях мож­но про­сто за­быть. Конеч­но, с SSD имеют место свои за­бо­ты, и BTRFS соз­дан для то­го, что­бы ра­бо­тать на обо­их.

Нуж­но про­сто со­об­щить сис­те­ме, что вы ис­поль­зуе­те SSD, ука­зав при по­строении флаг -o ssd, и все са­мо об­ра­зу­ет­ся, как по вол­шеб­ст­ву.

В

А мно­го­со­став­ные уст­рой­ст­ва — это вро­де RAID?

О

Ну, BTRFS под­дер­жи­ва­ет RAID, но это не но­во. С ее по­мо­щью мож­но соз­дать еди­ную фай­ло­вую сис­те­му, бе­ру­щую дан­ные с от­дель­ных уст­ройств, пре­об­ра­зуя их в один ги­гант­ский мас­сив.

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

Есть и дру­гие пре­иму­ще­ст­ва, ко­то­рые в рам­ках ста­тьи про­сто не уме­сти­лись. Уз­най­те о них под­робнее на https://btrfs.wiki.kernel.org.

В

Ого, сколь­ко все­го но­во­го. По­че­му же это все по­яв­ля­ет­ся чо­хом, а не по­сте­пен­но, как из­менения в дру­гих фай­ло­вых сис­те­мах?

О

Рас­ши­рен­ные фай­ло­вые сис­те­мы ис­поль­зо­ва­лись в Linux по­следние лет десять. В ка­ж­дой но­вой вер­сии по­яв­ля­лись но­вые функ­ции, но все это ог­раничи­ва­лось общ­но­стью пер­вич­ной струк­ту­ры. BTRFS в корне ме­ня­ет та­кой под­ход. Бла­го­да­ря пол­ной ре­кон­ст­рук­ции, раз­ра­бот­чи­ки смог­ли внедрить функ­ции, реализация которых пре­ж­де казалась невоз­мож­ной.

Все эти нов­ше­ст­ва – ре­зуль­тат ре­во­лю­ци­он­ных из­менений, в про­ти­во­вес по­сте­пен­ным, имев­шим ме­сто в прежних фай­ло­вых сис­те­мах.

В

Зву­чит действительно революционно. А как мне ее уста­но­вить?

О

Пре­ж­де чем это де­лать, имей­те в ви­ду, что на мо­мент вы­хо­да данно­го но­ме­ра боль­шин­ст­во по­ка не счи­та­ет этот про­дукт го­то­вым к ис­поль­зо­ванию – есть шанс по­вре­дить ва­шу фай­ло­вую сис­те­му. Од­на­ко для тес­то­вой сис­те­мы – вполне по­дой­дет; про­сто помните, что она мо­жет за­уп­ря­мить­ся, и что ре­зерв­ная ко­пия – ваш луч­ший друг.

Про­ще все­го до­б­рать­ся до нее, уста­но­вив ди­ст­ри­бу­тив с ее под­держ­кой. На дан­ный мо­мент, воз­мож­ность вы­бо­ра BTRFS при уста­нов­ке да­ют OpenSUSE 12.2 и Ubuntu 12.10. В дру­гих мож­но уста­но­вить под­раз­дел, смон­ти­ро­ван­ный в BTRFS. Но си­туа­ция до­воль­но бы­ст­ро ме­ня­ет­ся, так что пере­смот­ри­те повнимательнее до­ку­мен­та­цию по сво­ему ди­ст­ри­бу­ти­ву.

Как ва­ри­ант, есть еще ко­ман­да для кон­вер­ти­ро­вания Ext3 и 4 в BTRFS: btrfs-convert. И вновь, она по­ка недоста­точ­но ста­биль­на, что­бы счи­тать­ся го­то­вым про­дук­том, так что соз­да­вай­те ре­зерв­ные ко­пии или уж дей­ст­вуй­те на свой страх и риск. |

«Ес­ли, ко­пи­руя файл, вы его не ме­няе­те, он не зай­мет лишнего мес­та.»

Персональные инструменты
купить
подписаться
Яндекс.Метрика