Page 110

UNIXOID UNIXOID ///// ISSUE

TEXT ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ ÀÊÀ ÌÛÙÚÕ / /

ÂÎÉÍÀ ÌÈÐÎÂ: EXT2 VS EXT3 ÂÇÃËßÄ ÍÀ ÔÀÉËÎÂÛÅ ÑÈÑÒÅÌÛ LINUX ÏÎÄ ÍÅÎÁÛ×ÍÛÌ ÓÃËÎÌ

Î ÏÐÅÈÌÓÙÅÑÒÂÀÕ È ÍÅÄÎÑÒÀÒÊÀÕ ÔÀÉËÎÂÎÉ ÑÈÑÒÅÌÛ EXT3 ÍÀÏÈÑÀÍÎ ÌÍÎÃÎ. ÏÎ ÎÁÙÅÌÓ ÌÍÅÍÈÞ, ÎÍÀ ÎÁÅÑÏÅ×ÈÂÀÅÒ ËÓ×ØÓÞ ÍÀÄÅÆÍÎÑÒÜ ÇÀ Ñ×ÅÒ ÑÍÈÆÅÍÈß ÏÐÎÈÇÂÎÄÈÒÅËÜÍÎÑÒÈ. ÎÄÍÀÊÎ ÄÀËÅÊÎ ÍÅ ÂÑÅÃÄÀ EXT3 ÎÒÑÒÀÅÒ ÎÒ EXT2, È Â ÍÅÊÎÒÎÐÛÕ ÑËÓ×ÀßÕ ÄÀÆÅ ÅÅ ÎÁÃÎÍßÅÒ, ÏÐÈ×ÅÌ ÇÍÀ×ÈÒÅËÜÍÎ

ÂÂÅÄÅÍÈÅ Èñòèííûé ñìûñë íå â òåñòàõ, íå â ãðàôèêàõ è íå äèàãðàììàõ, à â èõ ôèçè÷åñêîé èíòåðïðåòàöèè. Ïîñòàíîâêà ýêñïåðèìåíòà — ýòî æå íå ïðîñòî òàê! ×òîáû ïîëó÷èòü äîñòîâåðíûå, âîñïðîèçâîäèìûå è îáúåêòèâíûå ðåçóëüòàòû, íåîáõîäèìî çíàòü, êàê óñòðîåíà ôàéëîâàÿ ñèñòåìà è êàêèå øåñòåðåíêè ïðèâîäÿò åå â äâèæåíèå. Âñåãäà ìîæíî ïîäîáðàòü òàêîé íàáîð òåñòîâ, íà êîòîðîì «õîðîøàÿ» ôàéëîâàÿ ñèñòåìà áóäåò áûñòðåå «ïëîõîé», à âñåõ íåñîãëàñíûõ îáîçâàòü ëàìåðàìè, íè÷åãî íå ñìûñëÿùèìè â òîíêèõ ýôôåêòàõ ìíîãîçàäà÷íîé îïåðàöèîííîé ñèñòåìû, ìíîãîóðîâíåâîãî êýøà è ò.ä. Ïîïðîáóåì ñðàâíèòü ôàéëîâûå ñèñòåìû ñðàçó ïî íåñêîëüêèì êðèòåðèÿì: íàäåæíîñòè, îòêàçîóñòîé÷èâîñòè, ïðîèçâîäèòåëüíîñòè è ò.ä., ÷òîáû êàæäûé ñìîã âûáðàòü íóæíóþ. Âîò ñ íàäåæíîñòè ìû, ïîæàëóé, è íà÷íåì. ÊÎÃÄÀ ÄÀÍÍÛÅ ÎÁÐÀÙÀÞÒÑß Â ÏÐÀÕ Ôàéëîâûå ñèñòåìû ext2 è ext3 î÷åíü ïîõîæè. ext3 — ýòî ext2 ñ ïîääåðæêîé æóðíàëèðîâàíèÿ, òî åñòü òðàíçàêöèåé. Òðàíçàêöèÿìè íàçûâàþò ãðóïïîâûå îïåðàöèè, âûïîëíÿåìûå èëè íåâûïîëíÿåìûå êàê îäíà åäèíàÿ îïåðàöèÿ. Äðóãèìè ñëîâàìè, àòîìàðíî. Ïîÿñíèì ýòî íà êëàññè÷åñêîì ïðèìåðå ïåðåâîäà äåíåã èç áàíêà À â áàíê Á. Íà íèçêîì óðîâíå ýòà îïåðàöèÿ ðàçáèâàåòñÿ íà äâå: ñíÿòèå äåíåã ñî ñ÷åòà è ïåðåâîä. À åñëè âî âðåìÿ ïåðåâîäà ïðîèçîéäåò ñáîé, è âûïîëíåíèå ïðîãðàììû ïðåðâåòñÿ? ×òîáû íå îñòàâèòü êëèåíòà áåç äåíåã, íåîáõîäèìî ïðåäóñìîòðåòü àâòîìàòè÷åñêèé «îòêàò». Ïåðåâîä ëèáî âûïîëíÿåòñÿ, ëèáî íåò. Ïðîìåæóòî÷íûå ñîñòîÿíèÿ íåäîïóñòèìû.

108

Âåðíåìñÿ ê ôàéëîâûì ñèñòåìàì. Ïî÷åìó â FAT16/32 ïîñòîÿííî îáðàçóþòñÿ ïîòåðÿííûå êëàñòåðû? Äà ïîòîìó, ÷òî îíà íå ïîääåðæèâàåò òðàíçàêöèé, è ìíîãîñòàäèéíûå îïåðàöèè âûïîëíÿþòñÿ íå àòîìàðíî! Âîò, íàïðèìåð, êîïèðîâàíèå ôàéëà. Ñèñòåìà âûäåëèëà äèñêîâîå ïðîñòðàíñòâî è òîëüêî ñîáèðàëàñü ïåðåäàòü åãî ôàéëó, êàê âñå ïîâèñëî (âàðèàíòû: ìîíòåð ïåðåðåçàë ïðîâîäà, þçåð íàæàë íà RESET), è îäèí èëè íåñêîëüêî êëàñòåðîâ îñòàëèñü íè÷åéíûìè. Æóðíàëèðóåìûå ôàéëîâûå ñèñòåìû (ext3, NTFS) â òàêèõ ñëó÷àÿõ äåëàþò àâòîìàòè÷åñêèé «îòêàò» ïðè ñëåäóþùåé çàãðóçêå, è ïîòåðè êëàñòåðîâ íå ïðîèñõîäèò. Ñîçäàíèå/óäàëåíèå/ïåðåèìåíîâàíèå ôàéëà — ýòî àòîìàðíûå îïåðàöèè, êîòîðûå íå ìîãóò äîïóñòèòü ïðîìåæóòî÷íûõ ñîñòîÿíèé. À âîò ñ îïåðàöèÿìè ïåðåìåùåíèÿ âñå íàìíîãî ñëîæíåå. Ôàéëîâàÿ ñèñòåìà íå ïîçâîëÿåò ïåðåìåùàòü ôàéë ìåæäó òîìàìè, âûíóæäàÿ ïðîãðàììó-îáîëî÷êó äåëàòü ýòî ñàìîñòîÿòåëüíî.  ðåçóëüòàòå îïåðàöèÿ ïåðåíîñà ðàçáèâàåòñÿ íà äâå: êîïèðîâàíèå ôàéëà-èñòî÷íèêà â ôàéë-ïðèåìíèê è óäàëåíèå èñòî÷íèêà. Ïðè ýòîì ìîæåò âîçíèêíóòü òàêàÿ íåõîðîøàÿ ñèòóàöèÿ, êîãäà ôàéë-ïðèåìíèê íå áûë çàïèñàí íà äèñê (ñèñòåìà íå óñïåëà ñáðîñèòü êýø, íàïðèìåð), íî èñòî÷íèê óæå áûë óäàëåí. Âîò òàêèå îíè òðàíçàêöèè. Ê òîìó æå ïîääåðæêà òðàíçàêöèé íå ìîæåò çàñòðàõîâàòü îò ïîòåðè çàïèñûâàåìûõ äàí-

íûõ, ïîñêîëüêó ôàéë æóðíàëà îáíîâëÿåòñÿ íå ìãíîâåííî, à ñ íåêîòîðîé çàäåðæêîé. Òðàíçàêöèè áåññèëüíû ïðîòèâîñòîÿòü ôèçè÷åñêèì äåôåêòàì ïîâåðõíîñòè, íåêîððåêòíî ðàáîòàþùåìó ïðîãðàììíîìó îáåñïå÷åíèþ è ò.ä. Ìíîãèå ñðàâíèâàþò ext2 ñ FAT, à ext3 ñ NTFS, íî ýòî íåâåðíî. Ïî ñâîåé àðõèòåêòóðå ext2 ãîðàçäî áëèæå ê NTFS, ÷åì ê FAT. Ãðóáî ãîâîðÿ, ext2 — ýòî NTFS áåç òðàíçàêöèé. Çà ñ÷åò âûñîêîé ñòåïåíè èçáûòî÷íîñòè (áîëüøîãî êîëè÷åñòâà äóáëèðóþùèõ äðóã äðóãà ñòðóêòóð), ext2 âåñüìà ñòîéêî ïåðåíîñèò ñáîè, è ïîýòîìó çà åå öåëîñòíîñòü ìîæíî îñîáî íå âîëíîâàòüñÿ. Ïîñëå âíåçàïíîãî âûêëþ÷åíèÿ ïèòàíèÿ îíà íå óïàäåò. Ïîääåðæêà òðàíçàêöèé â ext3 óâåëè÷èâàåò íàäåæíîñòü õðàíåíèÿ äàííûõ, íî íå ñòîëü ðàäèêàëüíî, êàê íåêîòîðûå ïûòàþòñÿ äîêàçàòü. Ïðè âûáîðå ðåæèìà «æóðíàëèðîâàòü òîëüêî ìåòàäàííûå» (data=writeback) âñå îòêðûòûå íà çàïèñü äàííûå â ìîìåíò èñ÷åçíîâåíèÿ ïèòàíèÿ ìîãóò îáíóëÿòüñÿ èëè çàïîëíÿòüñÿ ìóñîðîì.  ðåæèìå «æóðíàëèðîâàòü âñå» (data=journal) âñå äàííûå ñíà÷àëà ïèøóòñÿ â æóðíàë è òîëüêî çàòåì ïåðåíîñÿòñÿ â ôàéë. Ýòî çíà÷èòåëüíî ñíèæàåò ïðîèçâîäèòåëüíîñòü, íî çàòî ãàðàíòèðóåò íåïðîòèâîðå÷èâîñòü ñîñòîÿíèÿ äàííûõ è ìåòàäàííûõ: ôàéë ëèáî çàïèñûâàåòñÿ ïîëíîñòüþ, ëèáî íå çàïèñûâàåòñÿ âîîáùå. Òî åñòü ïîòåðÿ èíôîðìàöèè ïðè âíåçàïíîì èñ÷åçíîâåíèè ïèòàíèÿ èëè ïåðåçàãðóçêå âñå-òàêè âîçìîæíà.

XÀÊÅÐ 02 /86/ 06

Хакер Февраль 02(76) 2006  

Журнал от компьютерных хулиганов.

Хакер Февраль 02(76) 2006  

Журнал от компьютерных хулиганов.

Advertisement