RAID მასივები

ამ საკითხზე სემინარი მქონდა მოსამზადებელი და ბარემ პოსტსაც მივუძღვნი 🙂

რა არის ეს RAID (Redundant Array of Independent Disks) და რისთვის გამოიყენება? : )

როგორ შევინახოთ ინფორმაცია სისტემის აგების დროს დამოკიდებულია თვითონ ამოცანაზე. რა გვჭირდება: დიდი რაოდენობით ჩაწერა, წაკითხვა, სისწრაფე, საიმედოობა?

მაგალითად, არსებობს ამოცანები, სადაც კრიტიკული მნიშვნელობა აქვს ინფორმაციის საიმედოდ შენახვას და მასზე წვდომის შესაძლებლობას დროის ნებისმიერ მომენტში. ანუ, დისკის დაზიანების დროს უნდა არსებობდეს მისი შემცვლელი იგივე ინფორმაციით და თანაც რაც შეიძლება სწრაფად.

არის ამოცანები, სადაც წარმადობა უფრო პრიორიტეტულია. მაგალითად, როდესაც სერვერიდან დიდი რაოდენობით ვიდეო ნაკადები მოდის.

თავდაპირველად RAID-ის ძირითადი იდეა იყო, რომ რამდენიმე მყარი დისკი გაეერთიანებინა დისკების მასივში და ამით გაეუმჯობესებინა წარმადობა, რომელიც ერთ დიდი ზომის დისკს ჰქონდა.

ახლა RAID-ის არქიტექტურული დიზაინებიდან ყველაზე გავრცელებულია 5 ვარიანტი:  RAID 0, RAID 1, RAID 5, RAID 6, RAID 10.

ისინი ძირითადად ორ მიზანს ემსახურებიან: მონაცემთა შენახვის საიმედოობის გაზრდას, შეტანა/გამოტანის (დისკზე ჩაწერა/წაკითხვის) წარმადობის გაზრდას.

განვიხილოთ თითოეული მათგანი:

RAID 0

ჩაწერის დროს მონაცემები იყოფა ფრაგმენტებად და ეს ფრაგმენტები სათითაოდ ნაწილდება მასივში შემავალ დისკებზე. წაკითხვის დროს კი ყველა დისკიდან ერთდროულად ხდება წაკითხვა.

raid0

up_iconრაც უფრო მეტი დისკია, უფრო მეტად იზრდება სისწრაფე. უხეშად რომ შევადარო, ეს იგივეა, წყლის არხიდან ერთის მაგივრად რამდენიმე მილი გამოვიყვანოთ. იგივე რაოდენობის წყალს უფრო მალე მივიღებთ.

up_iconარ ვკარგავთ ადგილს. მთლიანად ვიყენებთ დისკების მოცულობას ჩვენი ინფორმაციისთვის.

down_iconასეთი სტრუქტურის სისუსტე დისკის დაზიანების დროს ჩანს. საკმარისია ერთ-ერთი მათგანის ამოვარდნა, რომ მთელი მასივი გადასაგდებია. წარმოიდგინეთ, წიგნში ყოველ სიტყვას მისი მესამედი რომ ჩამოვაჭრათ. წიგნი გამოუსადეგარი გახდება. თანაც მისი აღდგენა შეუძლებელია.

Read more

RSS (Really Simple Syndication)

ანუ როგორ არ გამოგვრჩეს ახალი პოსტები საყვარელი ბლოგებიდან 🙂

RSS ლოგო
RSS ლოგო

”RSS ვებ წყაროების (feed) ფორმატების ოჯახის წარმომადგენელია და ხშირად განახლებადი ინფორმაციის (ბლოგის წერილები, ტვიტერის სტატუსები, ახალი ამბები) გამოსაქვეყნებლად გამოიყენება.” – ვიკიპედია

მაგალითისთვის ბლოგი ავიღოთ. არსებული სკრიპტების უმრავლესობას უკვე აქვს RSS დოკუმენტის დაგენერირების შესაძლებლობა. ეს არის განსაზღვრული ფორმატის ფაილი, რომელშიც ის ყველაფერი წერია, რაც ბლოგზე, მხოლოდ არა ადამიანის, არამედ პროგრამისთვის აღქმად ენაზე. პოსტების სათაურები, პოსტები, გამოქვეყნების თარიღები და ყველა დანარჩენი ინფორმაცია. ასეთი დოკუმენტის მაგალითია xml ფაილი http://samurai.ge/feed/ ბმულზე. მაგრამ რისთვის არის საჭირო ბლოგის ასე გადაწერა, როცა ისედაც მოხერხებულად ვკითხულობთ ადამიანურ ენაზე?

ასეთი feed-ების წასაკითხად სპეციალური აპლიკაციები/საიტები არსებობს. მაგალითად, ერთ-ერთი ყველაზე გავრცელებულია Google Reader.  ამ Reader-ის საშუალებით ’გამოვიწერთ’ ბლოგებს 🙂 (ან თუნდაც სხვა ტიპის საიტებს, რომლებსაც RSS feed გააჩნიათ). გამოწერაში იგულისხმება, რომ თქვენს რიდერში თავს მოიყრის ყველა პოსტი, რაც ’გამოწერილ’ ბლოგებზე გამოქვეყნდება. ისინი თარიღის და საიტების მიხედვით ლაგდება. თანაც მიგითითებთ, რომელი სიახლე წაიკითხეთ უკვე და რომელი – არა.

კიდევ ერთი რამ, რაც ძალიან მომწონს, სიახლეების sharing-ის შესაძლებლობაა. ანუ, თუ ვთქვათ მეგობარმა ზე-საინტერესო პოსტი ნახა რომელიმე მის გამოწერილ ბლოგზე, შეუძლია ის სხვებს ’გაუზიაროს’  : ) სხვებში მისი google მეგობრები იგულისხმება, ანუ კონტაქტები. ამიტომ გემრიელი რაღაცეები შეიძლება ისეთი საიტებიდან მოგივიდეს, რომ არც გქონდეს ნანახი..

უარყოფითი მხარეც არის, რა თქმა უნდა 😀

მკითხველში ყველაფერი ერთნაირია გარეგნულად. მხოლოდ ტექსტი და ფოტოები. ბლოგების დიზაინი კი არსად ჩანს 🙂 მე კი ვთვლი, რომ დიზაინი (საერთოდ ბლოგის გარეგნული გარემო) ძალიან მოქმედებს პოსტის აღქმაზე. ამიტომ საყვარელ საიტებს მაინც ჩვეულებრივ პირდაპირ ვსტუმრობ და არა რიდერის გამოყენებით 🙂

პ.ს. Google Reader-ით სარგებლობისთვის google-ის ექაუნთია აუცილებელი. (თუ ჯერ არ გაქვთ, შეგიძლიათ დაარეგისტრიროთ ბმულზე : ) )

NetBeans IDE + Subversion

საიდან დავიწყო არ ვიცი… 🙂

სულ თავიდან მჭირდებოდა რამე IDE php-ისთვის. ჩვეულებრივ Dreamweavers ვიყენებ ამ ენისთვის, იშვიათად notepad++. მაგრამ დებაგს მაინც ვერ ველევი, tasklist-იც მაკლია 🙁 და დღეს გადავწყვიტე კიდევ ერთხელ ჩამოვუარო სხვა IDE-ებს.

პირველ რიგში მივიწყებული Aptana გავუშვი. დიდის ამბით გადავიტანე პროექტები, მაგრამ რად გინდა. სერვერებს ვერაფერი მოვუხერხე. ვაღიარებ, ჩემი ბრალია :blush2: მაგრამ მაინც ვერაფერი ვნახე bundled სერვერებზე. და ბოლოს იმდენად დამღალა, თავი დავანებე. + ამას რაღაცნაირად ნელია. და არც დებაგი აქვს მთლად ისეთი, რისი ხათრითაც დავრჩებოდი…

Eclipse-ს ვერ მოვერგე… მომავალ ჩამოვლაზე კიდევ შეიძლება მოსინჯვა..

მერე გამახსენდა რომ ჩემს საყვარელ NetBeans აქვს php-ის სამუშაო გარემო, რომელიც ცალკე აპლიკაციად (მხოლოდ PHP) შეიძლება გადმოწეროს კაცმა. საკმაოდ სწრაფია და მოსახერხებელიც თავისი პლაგინებით.. ერთადერთი რაც ხელს მიშლის, უნიკოდია. ქართული ასოები რომ გამოჩნდეს, sylfean ფონტი უნდა იყოს რედაქტორში არჩეული. sylfean-ი კიდევ მონოსპეისდი არ არის 😀

ფონტებს ადრე არც ვაკვირდებოდი ხოლმე, მაგრამ როცა ჩვეულებრივი ფონტით დაიწყებთ პროგრამის წერას, მაშინვე შეეტყობა, რატომაც არის ძნელი.. 🙂  ყველა ასო ერთი სიგანის უნდა იყოს. მე მგონი ფონტების რედაქტორი დამეხმარება ამ პრობლემის მოგვარებაში..

აი, მერე დაიწყო არც თუ ისე სასიამოვნო რაღაცა. თურმე Subversion-ის ვერსიებთან აქვს პრობლემა. ნეტბინსი მის 1.5.x ვერსიას ერგება. არადა ჩემთან უკვე 1.6.x წერია… ასე რომ გადატანილ პროექტებზე, შენი დიდი ხათრი მაქვს, მაგრამ ვერ გადავწერ-გადმოვწერ-დავააფდეითებო.. უკუთავსებადი არ ყოფილა…

რა შეიძლება ქნას ადამიანმა? ძველ ვერსიაზე დააბრუნოს subversion-ი. მაგრამ ოფიციალურ საიტზე ძველ ვერსიას ვერ ნახავთ 🙂 სამაგიეროდ შეხვდებით პითონზე დაწერილ დაუნგრეიდის სკრიპტს. და ინსტრუქციას: ”გამოძახების დროს პარამეტრად –help გადაეციო”. ასეთ დროს უკვე დაღლილი ხარ და შეიძლება ვერ მიხვდე რას უნდა ნიშნავდეს მთავარი პარამეტრის აბრევიატურა WC_PATH. მოკლედ დავიწყე სკრიპტში ქექვა 😀

ეს იმ პროექტის ძირეული დირექტორიაა, რომლის ვერსიის შეცვლაც გინდათ. ანუ მთავარ პროგრამას სინამდვილეში არაფერი მოსდის. მხოლოდ იმ ერთ პროექტს შეეცვლება svn-ის ფაილების ფორმატი.

პ.ს. თუ ამ გზით წახვალთ, ჩემსავით არ დაგავიწყდეთ, რომ კონსოლიდან გაშვების დროს პარამეტრებს ბრჭყალები უნდა 😀

პ.პ.ს. ბზობის დღესასწაულს გილოცავთ 🙂

Programming paradigms :)

🙂 რაღაცით კარგი დღეა დღეს :))) ნუ, დილა არ ითვლება 😛  ეზოში ყველაფერს გადავუარე მგონი :))) თითები გავიტაოტიანე :)) და კიდევ ბევრი უსიამოვნო წვრილმანი. ცოტა ხანში მივხვდი, რომ კარგ ხასიათზე დადგომა ჯობდა, თორემ ნაკაწრები არ ამცდებოდა..

მერე რაღაცები წარმატებით დამთავრდა 🙂 რამხელა სიამოვნებაა ხომ პროგრამაში შეცდომების გასწორება? 😛

მთავარი მაინც კარგი განწყობაა 🙂 იღბალი მოაქვს 😛

ამ პოსტში ისევ ლექციებზე საუბარი მინდოდა და გადავუხვიე. ყველაფერი იოსების ახალი პოსტის ნახვით და ლეკვას რჩევით დაიწყო 🙂

სტენფორდის (და კიდევ სხვების) ლექციები იუთუბზე.. მმმ… კონკრეტულად Programming paradigms, რომელსაც პროფესორი ჯერი კეინი კითხულობს. ცარცის დაფა მომწონს 😛 და ლექტორის იუმორი :)) კარგი მოსასმენია. საინტერესო 🙂 მოკლედ თქვენც გირჩევთ..

სტეგანოგრაფია

“When cryptography is outlawed,
bayl bhgynjf jvyy unir cevinpl.”

ზედმეტია იმაზე ლაპარაკი, თუ რა მნიშვნელობა აქვს ინფორმაციის დაცვას დღეს 🙂 მით უმეტეს როდესაც საქმე გვაქვს გლობალურ თუ ლოკალურ ქსელებთან. აქედან გამომდინარე არსებობს უამრავი მეთოდი ინფორმაციის უსაფრთხოდ მიმოცვლისთვის.

მაგალითად შეგვიძლია დავშიფროთ, მაგრამ დღეს კრიპტოგრაფიაზე არ მექნება საუბარი.
არა დაშიფვრაზე, არამედ მის დამალვაზე.

თუ ხელმისაწვდომია სიმბოლოების ასეთი მიმდევრობა:

ce794b2ffb7bccdc2f77586b5bf8cb9213d037a
cd4c87ffa833fe4dd578345a210e643683cffb1
3898b7099f8a145272515a77b11555f7f8391d

გასაგებია, რომ მისი გარდაქმნით შეგვიძლია ორიგინალი აღვადგინოთ როგორმე. უფრო დაცული იქნება მასში ჩადებული ინფორმაცია, თუ საერთოდ არ გვეცოდინება მისი არსებობის შესახებ.

როდესაც კრიპტოგრაფიის ამოცანაა ამოკითხვის შესაძლებლობა არ მისცეს მესამე პირს, სტეგანოგრაფია – ეს არის ინფორმაციის დამალვის მეცნიერება. მას ძველი ბერძნებიც წარმატებით იყენებდნენ (მაგალითად  შიკრიკს თავზე ტატუირებას უკეთებდნენ და აცლიდნენ თმის გაზრდას. დანიშნულების ადგილზე მისვლის დროს კი ისევ აჭრიდნენ თმას :))) და შეტყობინებას ნახულობდნენ)

ვიკიზე მოყვანილია ფოტო:

ამ ფოტოს თითოეული ფერის კომპონენტს (RGB) თუ მოვაცილებთ ყველა ბიტს ბოლო ორის გარდა და შემდეგ სიკაშკაშეს (brightness) გავზრდით 85-ჯერ, მივიღებთ სულ სხვა ფოტოს:

სხვადასხვა გზით ინფორმაცია შეგვიძლია დავმალოთ mp3, wav, jpg, bmp, gif, au … ფორმატის ფაილებში.

აი, თუნდაც .bmp.  24-ბიტიანი bitmap ფაილი ავიღოთ. 

სურათის თითოეული პიქსელის თითოეულ ფერი (R,G,B) ინახება 8 ბიტში. ანუ თუ ავირჩევთ ერთ ფერს – მაგალითად R წითელი, მისი 28 განსხვავებული ვარიანტი იარსებებს.  ამ ორს – 11111111 და 11111110 – შორის კი განსხვავება ისეთი მცირეა, რომ ადამიანის თვალი ვერ შეამჩნევს. ასე რომ თუ თითოეული პიქსელის წითელის ბიტების ბოლო ბიტში ჩვენს ინფორმაციას შევინახავთ, თვალით ცვლილების აღქმა თითქმის შეუძლებელი იქნება. რა თქმა უნდა მეორე მხარემ უნდა იცოდეს სადაა ინფორმაცია დამალული და როგორ.

 

ჯერ ვერ მოვაბი თავი, რომ პრაქტიკულად ჩავატარო ექსპერიმენტები, მაგრამ როდისმე მოვიცლი და შედეგებს დავწერ…