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

LXF160:Установка нового диска

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


Учеб­ник: Раз­би­ра­ем­ся с не­ко­гда про­стым до­бав­ле­ни­ем же­ст­ко­го дис­ка

Содержание

Установка нового диска

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

Не­важ­но, со­бра­лись вы до­ба­вить 2-терабайтный ко­лосс или кро­шеч­ный SSD:Нейл Бот­вик по­мо­жет сде­лать все пра­виль­но.

Когда-то до­ба­вить но­вый же­ст­кий диск бы­ло про­сто: тре­бо­ва­лось лишь под­клю­чить его к ком­пь­ю­те­ру и соз­дать раз­де­лы лю­би­мым ин­ст­ру­мен­том команд­ной стро­ки (fdisk, cfdisk) или гра­фи­че­­ским (Gparted). Ес­ли вы ме­ня­ли сис­тем­ный же­ст­кий диск, мож­но бы­ло за­гру­зить­ся с ди­ст­ри­бу­тив­но­го CD, и уста­нов­щик сис­те­мы вы­пол­нял раз­мет­ку за вас. Те­перь все ста­ло несколь­ко сложнее: с ви­ду раз­ные на­ко­пи­те­ли, как вы­яс­ня­ет­ся, де­мон­ст­ри­ру­ют сход­ные про­бле­мы.

Боль­шие же­ст­кие дис­ки, по­ряд­ка 2 ТБ, ста­ли сто­ить вполне ра­зум­но, и вы мо­же­те за­хо­теть про­сто во­ткнуть один та­кой в ком­пь­ю­тер и на­чать им поль­зо­вать­ся – а в ре­зуль­та­те ока­жет­ся, что про­из­во­ди­тель­ность ниже, чем у ва­ше­го ста­ро­го дис­ка. Все­му ви­ной схе­ма ор­ганиза­ции дан­ных. Мно­гие го­ды ин­фор­ма­ция хранилась бло­ка­ми по 512 байт (этот блок не свя­зан с раз­ме­ром бло­ка фай­ло­вой сис­те­мы). Дис­ки ста­но­ви­лись боль­ше, чис­ло бло­ков росло, и при 2 ТБ пре­вы­си­ло мак­си­маль­ное зна­чение, ко­то­рое мож­но со­хранить в 32-бит­ном це­лом.

Тогда про­из­во­ди­те­ли дис­ков пе­ре­шли на 4-КБ бло­ки, в во­семь раз боль­ше; та­ким об­ра­зом, про­бле­ма от­ло­же­на до вре­мен, когда один диск бу­дет вме­щать 16 ТБ. Это так­же по­зво­ли­ло эф­фек­тивнее хранить боль­шие фай­лы, осо­бен­но с уче­том то­го, что мно­гие фай­ло­вые сис­те­мы, вклю­чая ext2/3/4, так­же ис­поль­зу­ют бло­ки по 4 КБ. Это все зву­чит непло­хо до тех пор, по­ка вы не осоз­нае­те, что же­ст­кие дис­ки вы­ну­ж­де­ны обес­пе­чи­вать об­рат­ную со­вмес­ти­мость с некой по­пу­ляр­ной ОС, при­тво­ря­ясь, что они по-прежнему опе­ри­ру­ют бло­ка­ми по 512 байт. Что в этом пло­хо­го? А то, что ес­ли вы начнете фай­ло­вую сис­те­му с бло­ка, но­мер ко­то­ро­го не кра­тен 8 (ска­жем, 63, что из­древ­ле бы­ло зна­чением по умол­чанию в Linux), ка­ж­дый 4-КБ блок фай­ло­вой сис­те­мы бу­дет хранить­ся в двух фи­зи­че­­ских бло­ках на дис­ке, и ка­ж­дое его чтение или запись пре­вра­тит­ся фак­ти­че­­ски в две опе­ра­ции вво­да-вы­во­да, что крайне нега­тив­но ска­жет­ся на про­из­во­ди­тель­но­сти (по ря­ду при­чин, уве­ли­чение объ­е­ма ра­бо­ты в два раза вы­зы­ва­ет бо­лее чем дву­крат­ное па­дение ско­ро­сти).

Твер­до­тель­ные дис­ки

Вы­равнивание бло­ков еще бо­лее важ­но на дру­гом кон­це шка­лы ем­ко­стей – в сег­мен­те SSD-дис­ков. Они ис­поль­зу­ют флэш-па­мять, а не магнит­ный но­си­тель, что да­ет ряд пре­иму­ществ, осо­бен­но для мо­биль­ных уст­ройств (по­это­му боль­шин­ст­во твер­до­тель­ных дис­ков име­ют форм-фак­тор 2,5"). От­сут­ст­вие дви­жу­щих­ся час­тей де­ла­ет та­кие дис­ки бо­лее ти­хи­ми и уда­ро­проч­ны­ми, и у них бо­лее эко­ном­ное энер­го­по­треб­ление. Но важнее то, что SSD-дис­ки ку­да бы­ст­рее сво­их магнит­ных ана­ло­гов; фак­ти­че­­ски, они мо­гут пре­взой­ти про­пу­ск­ную спо­соб­ность ин­тер­фей­са SATA. По­это­му для дости­жения мак­си­маль­ной про­из­во­ди­тель­но­сти наи­бо­лее про­дви­ну­тые (и до­ро­гие) SSD-дис­ки под­клю­ча­ют­ся че­рез кар­ты PCIe; но в на­шей ста­тье мы бу­дем го­во­рить о SATA-ва­ри­ан­тах. Не­смот­ря на ис­поль­зо­вание флэш-па­мя­ти, SSD-дис­ки име­ют ма­ло об­ще­го с USB-флэш­ка­ми. SSD-дис­ки ис­поль­зу­ют тех­но­ло­гию рав­но­мер­но­го из­но­са [wear-levelling], что­бы пре­дот­вра­тить бы­ст­рый вы­ход из строя из-за по­сто­ян­ной за­пи­си на од­но и то же ме­сто (на­при­мер, в жур­нал фай­ло­вой сис­те­мы). Это на­ла­га­ет ог­раничения на раз­мет­ку. Хо­тя раз­мер бло­ка мо­жет оста­вать­ся рав­ным 512 байт, как и у магнит­но­го дис­ка ана­ло­гич­ной ем­ко­сти, эти бло­ки груп­пи­ру­ют­ся в так на­зы­вае­мые бло­ки сти­рания [erase block]. Та­ким об­ра­зом, за­ти­рание и пе­ре­запись па­мя­ти про­ис­хо­дит бо­лее круп­ны­ми куска­ми, и эф­фек­тив­ность ра­бо­ты по­вы­ша­ет­ся.

Раз­мер бло­ка сти­рания мо­жет варь­и­ро­вать­ся (обыч­но ме­ж­ду 128 КБ и 512 КБ). Лю­бая схе­ма раз­мет­ки и фай­ло­вая сис­те­ма, не вы­ровнен­ная по границам этих зна­чений, бу­дет ис­пы­ты­вать те же про­бле­мы с про­из­во­ди­тель­но­стью, что и на боль­ших же­ст­ких дис­ках – ес­ли не ху­же.

Вы­равнивание бло­ков

Итак, мы столк­ну­лись с од­ной и той же про­бле­мой и одним и тем же ре­шением для двух дис­ков со­вер­шен­но раз­ных ти­пов. Как обес­пе­чить, что­бы раз­де­лы соз­да­ва­лись в «пра­виль­ных» мес­тах? Мож­но по­ду­мать, что доста­точ­но сде­лать раз­ме­ры всех раз­де­лов крат­ны­ми 4 КБ, но эта идея не сра­бо­та­ет, по­сколь­ку пер­вый раз­дел на­чи­на­ет­ся с бло­ка под но­ме­ром 63 – это мнго­го­летнее со­гла­шение – т. е. на один блок рань­ше, чем вы хо­те­ли бы. Ре­зуль­тат –про­бле­мы с про­из­во­ди­тель­но­стью.

Ес­ли вы раз­ме­чае­те же­ст­кий диск све­жей вер­си­ей fdisk, по умол­чанию все раз­де­лы бу­дут крат­нымм 2048 сек­то­рам, неза­ви­си­мо от их раз­ме­ра; при 512-байт­ных бло­ках это бу­дет обо­зна­чать вы­равнивание по границе 1 МБ. Та­ким об­ра­зом, бу­дут удов­ле­тво­ре­ны тре­бо­вания и SSD, и боль­ших же­ст­ких дис­ков. Ес­ли вы и впредь бу­де­те сле­дить за тем, что­бы все раз­де­лы бы­ли вы­ровнены та­ким об­ра­зом, про­блем не бу­дет. Наи­луч­ший спо­соб достичь это­го – за­да­вать раз­ме­ры раз­де­ла в МБ (или ГБ), а не сек­то­рах – тогда fdisk сде­ла­ет всю ра­бо­ту за вас. Ес­ли у вас ста­рая вер­сия fdisk, ко­то­рая пы­та­ет­ся на­чать с 63-го сек­то­ра, и вы по ка­кой-то при­чине не мо­же­те об­но­вить ее, начните раз­дел с бло­ка 2048 и вы­би­рай­те раз­ме­ры раз­де­лов крат­ны­ми 1 МБ; это са­мое про­стое ре­шение (бо­лее слож­ный ва­ри­ант – за­да­вать раз­ные CHS в команд­ной стро­ке, ука­зы­вая клю­чи -C, -h и -S при стар­те fdisk. Это то­же ра­бо­та­ет, но ма­лей­шая ошиб­ка при­ве­дет к некор­рект­но­му вы­равниванию). В лю­бом слу­чае, не свя­зы­вае­тесь с cfdisk: ранее достой­ный, сей­час он не мо­жет обес­пе­чить долж­ную сте­пень кон­тро­ля над про­ис­хо­дя­щим.

BIOS или GPT?

Есть и еще один спо­соб: от­ка­зать­ся от таб­ли­цы раз­де­лов BIOS три­дца­ти­летней дав­но­сти. По­ми­мо на­вя­зы­вания CHS-ад­ре­са­ции, она соз­да­ет ог­раничение в че­ты­ре пер­вич­ных раз­де­ла. Его, конеч­но, мож­но обой­ти при по­мо­щи ло­ги­че­­ских раз­де­лов, но это сра­бо­та­ет, толь­ко ес­ли у вас еще нет че­ты­рех раз­де­лов, а на мно­гих но­ут­бу­ках Windows и раз­де­лы восста­нов­ления занима­ют их все.

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

GPT (GUID Partition Table, таб­ли­ца раз­де­лов на осно­ве GUID-иден­ти­фи­ка­то­ров) при­хо­дит на за­ме­ну таб­ли­це BIOS и мо­жет ис­поль­зо­вать­ся прак­ти­че­­ски лю­бым со­вре­мен­ным обо­ру­до­ванием. Ин­ст­ру­мен­ты для ра­бо­ты с GPT-дис­ка­ми обыч­но вклю­че­ны в па­кет gptfdisk. Сю­да вхо­дят gdisk и cgdisk, за­ме­няю­щие fdisk и cfdisk, со­от­вет­ст­вен­но. Parted (и его гра­фи­че­­ские обо­лоч­ки) уже под­дер­жи­ва­ет GPT – ника­кая но­вая про­грам­ма не тре­бу­ет­ся. Про­грам­мы ра­бо­та­ют в основ­ном при­выч­ным об­ра­зом, но ав­то­ма­ти­че­­ски вы­равнива­ют все по 2048 бло­кам, что по­зво­ля­ет из­бе­жать опи­сан­ных вы­ше про­блем.

Наи­луч­шей ре­ко­мен­да­ци­ей для со­хранения об­рат­ной со­вмес­ти­мо­сти с су­ще­ст­вую­щи­ми за­груз­чи­ка­ми яв­ля­ет­ся соз­дание спе­ци­аль­но­го за­гру­зоч­но­го раз­де­ла в на­ча­ле дис­ка. За­пусти­те gdisk от имени root, ука­жи­те имя сво­его дис­ка и на­жми­те n для соз­дания раз­де­ла. Зна­чения но­ме­ра раз­де­ла и стар­то­во­го сек­то­ра мож­но оста­вить как по умол­чанию (для чис­то­го дис­ка это 1 и 2048), а для конеч­но­го сек­то­ра вве­ди­те +1 M (что оз­на­ча­ет 1 МБ от на­ча­ла раз­де­ла). На во­прос о ти­пе раз­де­ла вве­ди­те EF02, что­бы соз­дать за­гру­зоч­ный раз­дел BIOS. Раз­меть­те осталь­ные раз­де­лы стан­дарт­ным оба­зом.

Про­це­ду­ра пол­но­стью ана­ло­гич­на fdisk, раз­ве что вас не спра­ши­ва­ют, хо­ти­те вы соз­дать ло­ги­че­­ский или основ­ной раз­дел. Дру­гое от­ли­чие – тип раз­де­ла те­перь ука­зы­ва­ет­ся двух­бай­то­вым ко­дом: так, для Linux-раз­де­ла это 8300, а не 83. Об­ра­ти­те внимание, что за­гру­зоч­ный раз­дел BIOS – не то же са­мое, что раз­дел /boot в Linux: здесь не со­дер­жит­ся ника­ких фай­лов опе­ра­ци­он­ной сис­те­мы. Это про­сто пер­вый раз­дел же­ст­ко­го дис­ка, а «по­лез­ные» раз­де­лы на­чи­на­ют­ся с /dev/sda2.

Аль­тер­на­тив­ные ин­ст­ру­мен­ты

В при­ме­ре вы­ше мы ис­поль­зо­ва­ли gdisk; cgdisk ана­ло­ги­чен, но ис­поль­зу­ет тек­сто­вый ncurses-ин­тер­фейс в про­ти­во­вес команд­ной стро­ке gdisk. Есть так­же parted: он очень мощ­ный и име­ет па­ра­метр команд­ной стро­ки, вклю­чаю­щий оп­ти­маль­ное вы­равнивание. Од­на­ко его ин­тер­фейс да­же менее ин­туи­ти­вен, чем у fdisk. Есть и гра­фи­че­­ские обо­лоч­ки – на­при­мер, по­пу­ляр­ный Gparted, а так­же ин­стал­ля­то­ры боль­шин­ст­ва ди­ст­ри­бу­ти­вов; од­на­ко Gparted не пред­ла­га­ет спо­со­ба управ­ления вы­равниванием, так что его мож­но ис­поль­зо­вать на боль­ших дис­ках и SSD, толь­ко ес­ли вы соз­дае­те GPT-раз­де­лы.

Ес­ли при уста­нов­ке на но­вый же­ст­кий диск ин­стал­ля­тор ва­ше­го ди­ст­ри­бу­ти­ва пред­ла­га­ет ис­поль­зо­вать GPT – со­гла­шай­тесь; в про­тив­ном слу­чае вы мо­же­те ре­шить предварительно раз­ме­тить диск вруч­ную. |

CHS или LBA?

На пер­вых же­ст­ких дис­ках по­ло­жение бло­ка оп­ре­де­ля­лось но­ме­ром «бли­на» (или го­лов­ки), до­рож­ки (ци­лин­д­ра) на «блине» и сек­то­ра в ци­лин­д­ре. Та­кая схе­ма ад­ре­са­ции из­вест­на как CHS (Cylinder, Head, Sector). На сме­ну ей при­шла схе­ма LBA (Logical Block Addressing, Ад­ре­са­ция ло­ги­че­­ских бло­ков), в рам­ках ко­то­рой но­ме­ра бло­ков на дис­ке со­став­ля­ют про­стую по­сле­до­ва­тель­ность, на­чи­наю­щую­ся с ну­ля и про­дол­жаю­щую­ся до фи­зи­че­­ской ем­ко­сти дис­ка.

Од­на­ко тра­ди­ци­он­ные ин­ст­ру­мен­ты раз­мет­ки, вро­де fdisk, про­дол­жа­ют ис­поль­зо­вать CHS-ад­ре­са­цию. Вот, на­при­мер, вы­вод fdisk -l на 2-ТБ дис­ке:

% fdisk -l /dev/sde

Disk /dev/sde: 2000.4 GB,

2000398934016 bytes

255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes /512 bytes

Disk identifier: 0x0008f6db

Device Boot Start End Blocks Id System

/dev/sde1 2048 3907028991 1953513472 83 Linux

Здесь просматривается как CHS-ад­ре­са­ция, так и то, что 2-ТБ диск ис­поль­зу­ет 512-байт­ные бло­ки, хо­тя на сай­те из­го­то­ви­те­ля ска­за­но, что раз­мер бло­ка – 4 КБ.

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