Երբ Ջաֆար Պանահու մասին էի գրում, մտածեցի․
Հանս Ռայզերը, ինչպես հայտնի դարձավ Շիշկինի հետ հարցազրույցից, իրավունք չունի կարգիչ օգտագործել։ Ու եթե Պանահին անգութորեն նստած է իր ֆիլմերի համար, ու պարզ է ինչու է նրան արգելված ֆիլմեր նկարել ու սցենարներ գրել, ապա Հանսը՝ կանխամտածված սպանության համար։ Սակայն նա միևնույն է իրավունք չունի կարգիչ օգտագործել, որը նշանակում է՝ չի կարող իր կյանքի ամենակարեւոր պրոեկտը՝ ռայզերֆսը կատարելագործել։
Բնական է որ կասկած է առաջանում արդյոք Ռայզերը իրականում սպանության համար է դատապարտված, կամ արդյո՞ք դա չի օգտագործված ինչ որ մեկի կողմից որպեսզի խափանի ֆայլային համակարգի զարգացումը։
[Շիշկինի հետ հարցազրույցից։][1]
մեկնաբանություններից՝
<blockquote style="border: 2px solid rgb(127, 195, 59); padding: 10pt; margin-left: 30pt; background-color: #a6df6d;">
<p>
Лично мне он внушает и то, и другое. Насчёт работы по выходным – так многие, если не большинство, опенсорс-девелоперов, не делают и этого. К тому же, действительно, в reiser принципиально ничего технически нового уже не требуется, потому что в основе лежат фундаментальные алгоритмы, уже реализованные. Сейчас нужно просто запилить все баги.<br /> У меня интервьюируемый вызывает огрмное уважение тем, что он занимается интеллектуальным трудом, а не продаёт себя, как проститутка, зарабатывая клепанием говно веб-, java- и flash-контента, и всякой бизнес-ориентированной фигни. Он создаёт новое, прогрессивное, а не тупо прогибается под потреблядский маркетинг .
</p>
ու տենց
Մի լուսանկար քոփի չեր լինում արտաքին վինչից։
fsck.reiserfs –fix-fixable-ը չոգնեց։
Դա շատ հետաքրքիր էր, քանի որ smartctl-ը բնավ չեր ցույց տալիս reallocated sector-ների գոյություն։
Իսկ եթե չկա ռեալոքեյթդ սեկտոր, ուրեմն ինչի՞ չի կարդում։
Դե ասացի, ծառը վերակառուցեմ։
fsck.reiserfs –rebuild-tree /dev/sdb1
Ո՞վ կմտածեր, որ 500gb բաժնի ծառը վերակառուցելը մի ինը ժամ կտևի։
Սակայն, ինը ժամ չպահանջվեց։ fsck-ն դուրս թռավ ինփութ աութփութ սխալով։ Մի տեղ։
Ու նոր ֆսցկ-ն կրկին նույն տեղը դուրս էր թռնում։
Օկ, մտածեցի ես, բաքափեմ էղած չեղածը, հավաքեմ դիսկերի հետ աշխատելու փասափուսես, ու անցնեմ գործի, ջենթելմեններ։ Բայց նե տուտ-տո բիլո։ Պարզվում ա, եթե rebuild-tree-ն բարեհաջող չի ավարտվել, ուրեմն ֆսյո, ֆայլսիսթեմը էլ մաունթ չի լինի։ Լավ, չի լինի չի լինի, որոշեցի dd անեմ, դիսկի պատկերը պահեմ, հետո տենամ ինչ եմ անում։ Կակ բի նե տակ։, Չէ մի չէ, փաստորեն։ Դդ-ն դդուրս ա թռնում նույն տեղում։ Ի/Օ էրոր։
ՕԿ, dd_rescue արեցի ամբողջ դիսկը։ Կրկին տեսա՝ նույն տեղում, չի կարողանում կարդալ, ու զրոներ ա պատկերի մեջ խփում։ Ութ հատ սխալ։
Լավ նորություն՝ իմացանք ճշգրիտ բլոքը, որտեղ պրոբլեմ կա։ Ուրեմն էդ ա փչացած տեղը։
Ուրեմն, իրա վրա մի բան գրեմ, ու փչացած սեկտորները ռեմափ կլինեն։
Գրեցի։ Մի բլոք՝ ի/օ էրոր։ հաջորդ բլոքը՝ ի/օ էրոր։ Ու տենց ութ բլոք։
Կրին գրեցի՝ նույնը։ Նայեցի reallocated sectors՝ զրո։ Գժվում էի։
Էդ ի՞նչ ա փչացել, որ reallocated sectors՝ զրո, բայց չի գրում։
Եթե լիքը ռեալոքեյթ եղած սեքտոր լիներ, ուրեմն պարզ ա, ռեմափ չի կարող անել, բայց զրո՞։
Ու մտածեցի լավ, բաժանեմ վինչը նենց, որէդ տեղը մնա մի փոքր փարթիշնի վրա։ Սկզբից լավ բաժին, հետո մի բաժին, չեմ էլ օգտագործի, հետո էլի լավ բաժին։
Սարքեցի, ու հաշվարկները ստուգելու համար, որ ճիշտ եմ արել, ասացի էդ լրիվ բաժինը զրոներով լցնեմ, որ տեսնեմ, ոնց ա դուրս թռնում ու համոզվեմ, որ ճիշտ եմ բաժանել, փչացած տեղը առանձնացրել։
dd if=/dev/zero of=/dev/sdb2
Ու դուրս չը-թը-ռա՛վ։ Ըտենց։ Ստուգեցի, տեղը ճիշտ էր։ Պարզապես, որ մի հատիկ սեկտորի վրա գրում էի, ինքը ռեմափ չեր անում։ Իսկ հիմա սմարտցլ-ը ցույց տվեց մի հատ ռեմափ արած սեկտոր։ Ահա։
Ուրեմն պետք էր տենց մասիվ դդ անել, որ անես, հա՞։ Էդ ինչից ա չգիտեմ, որ ուսբ դիսկ վինչ ա, ու մի տեսակ տորմոզնոյ ա, ու մի հատիկ սեկտորի վրա գրելուց ռեմափ չի անում, բայց մասիվ գրելուց անում ա։
Ամեն դեպքում, րայզերֆսս սարքեցի։ Իմաջը losetup արեցի, վրայով fsck-ով անցա, ու քշեցի հետ դիսկի վրա։
Ու ըտենց մեծ վինչերի վրա էլ րայզերֆս չեմ պահում, քանի որ չեմ ուզում ժամերով ծառ վերակառուցել։
Ու դա բնավ կապ չունի այն հանգամանքի հետ, որ Ռայզերը նստած, սակայն բնավ ոչ հելած տղա ա։
Դե ս կեմ նե բիվաետ, լոխանուլսյա, ռուս ծիտ գտավ, հիմա էլ տենց էլ պետք ա լիներ։ Համ էլ եթե սպանել ա լավ ա արել, բա մարդուն դավադիտ անեն, ինքը տենց էլ թողնի՞։
մի ֆայլ կարդալու սխալ էր։ ուսբ-ով կպնող վինչի։ այդպես էր սկսվել։
արեցի fsck չդզվեց։
արեցի reiserfsck –rebuild-tree, որը փաստորեն չկարողացավ ավարտվել, որովհետև ինչ որ տեղ թքում ու դուրս էր թռնում։
իսկ եթե ծառի վերակառուցումը չի ավարտվել, ապա բաժինը էլ մաունթ չի լինի։
որոշեցի բաքափ անել սաղ վինչը։
dd if=/dev/sdb of=/data/noch/hd.img
չեղավ
դուրս թռավ կոնկրետ տեղում՝ 464648040-րդ բլոքի վրա։
ու տենց հա դուրս էր թռնում։
փաստորեն dd_rescue-ով հանեցի դիսկի պատկեր, համ էլ իմացա, քանի բլոք ա կոնկրետ վնասվել։
հիմա կարելի էր այդ տեղը զրոնել լցնել որ դիսկը ռեմափ անի
չարեց՝ ինփութ/աւոփութ էրրոր։
smartctl-ը ինձ զարմացրեց՝ ոչ մի ռեալլոքեյթդ սեկտոր։
Եթե վատ սեկտորի վրա ինչ որ բան գրում ես, վինչը իրան ռեմափ ա անում։
Մինչև կա ինչ ռեմափ անել։ Եթե էլ չկա, ու ֆայլային համակարգի մակարդակի վրա ա սխալը, ապա ավելի լավ ա վինչը գցել։
բա ինչի՞ չի գրում։ ոչ սխալ կա, ոչ գրում ա։
Մի հատ էլ գրեցի՝
# dd if=/dev/zero of=/dev/sdb seek=464648040 bs=512 count=8
dd: writing `/dev/sdb’: Input/output error
1+0 records in
0+0 records out
0 bytes (0 B) copied, 2.45075 s, 0.0 kB/s
Մտածեցի, հիմա ի՞նչ անեմ։ Ոչ սխալ սեկտոր չկա բայց չի գրում։
Ախր եթե սխալ սեկտոր ա, պիտի ռեմափ անի։
Կարելի էր իհարկե ext ֆս ստեղծել -c-ով որ չեք ֆոր բադ բլոքս անի։
Բայց էդ կլիներ ֆս-ի մակարդակի վրա։ Իսկ եթե smart-ը ցույց չի տալիս reallocated sectors ապա ի՞նչ իմաստ ունի -c-ով ֆս ստեղծելը։
Ավելին, ես ուզում եմ xfs քշել։
Որոշեցի անհայտ պատճառով առաջացած սխալ տեղը իզոլացնել։
Հաշվեցի, որ
464648040*512
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
464648040*512
237899796480
237899796480/1000000
237899
Ահա, 237-երրորդ գիգաբայթի վրա էր սխալը։
Իզոլացրեցի, ստեղծեցի 236-ից 238գբ, 2գբ-ոց բաժին։
սկսեցի լցնել այն զրոներով։
# dd if=/dev/zero of=/dev/sdb2
dd: writing to `/dev/sdb2′: No space left on device
3903796+0 records in
3903795+0 records out
1998743040 bytes (2.0 GB) copied, 84.1689 s, 23.7 MB/s
quit
$
գրե՞ց
բա նոր չեիր գրում։
հիմա կրկին գրեմ էն չգրվող տեղը։
# dd if=/dev/zero of=/dev/sdb seek=464648040 bs=512 count=8
8+0 records in
8+0 records out
4096 bytes (4.1 kB) copied, 0.0557051 s, 73.5 kB/s
գրում ա
հմմմ։
կրկին սմարտ։
smartctl -a /dev/sdb
Ահա, գտնվեց։
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always – 1
Մի հատ ռեմափ արեց։
Հրաշալի ա։
Բա ինչի՞ էր պահանջվում էդպիսի մասսիվ դդ որ ինքը ռեմափ անի։
Գուցե նրանից որ usb-ով ա կպած։
Էդ չգիտեմ ես։
ու տենց
mkfs.reiserfs and mkfs.reiser4 արտաքին 1տբ վինչի վրա տևում է՝ ~ 50 վայրկյան
mkfs.ext3 and mkfs.ext4 նույն վինչի վրա տևում է արդեն ~ 10 րոպե
այսպիսով, րայսերֆս-ը մոտ տաս անգամ ավելի արագ է ստեղծվում։
_ու տենց _
на прошлом месте работы я очень рекомендовал использовать скомпилированные с О3 оптимизацией gentoo системы на reiserfs вместо RHEL на ext3
Сделал сетап дженту с скомпиленныйм с О3 mysql так как это их интересовало больше.
А потом уже уйдя с той работы получил результаты их тестов.
меньше – лучше 🙂
blue – my custom Gentoo, Red – RHEL 🙂
мой сетап gentoo против их сетапа RHEL на той же машине
6.53 секунды против 10.74 секунды
21.14 секунды против 32.75 секунды
2 минуты 57.14 сек против 3 минуты, 54.27 секунды
7 минут 44.56 сек против 10 минут 2.54 секунды
P-4 2.4 MHz RAM 512,
Gentoo (kernel 2.6.28.7, FS – reiserfs)
RedHat 4 Enterprice (kernel 2.6.9-5, FS –ext3)
WRITE
Gentoo
41 MB, 387203 record file
LOAD DATA INFILE “04062007” INTO TABLE ulog; Time 6.53 sec
64 MB, 590284 record file
LOAD DATA INFILE “03282007” INTO TABLE ulog; Time 10.74 sec
RH4 EL
41 MB, 387203 record file
LOAD DATA INFILE “04062007” INTO TABLE ulog; Time 21.14 sec
64 MB, 590284 record file
LOAD DATA INFILE “03282007” INTO TABLE ulog; Time 32.75 sec
READ
Gentoo
SELECT COUNT(*) FROM page, page_info WHERE page.page_namespace = 100 AND page.page_id = page_info.page_id; Time 2 min 57.14 sec
SELECT COUNT(*) FROM page WHERE page_title LIKE ‘a’; Time 7 min 44.56 sec
RH
SELECT COUNT(*) FROM page, page_info WHERE page.page_namespace = 100 AND page.page_id = page_info.page_id; Time 3 min 54.27 sec
SELECT COUNT(*) FROM page WHERE page_title LIKE ‘a’; Time 10 min 2.54 sec
hans reiser: