‏إظهار الرسائل ذات التسميات نظام تسيير الملفات File System. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات نظام تسيير الملفات File System. إظهار كافة الرسائل

يوليو 01، 2011

إسترجاع المساحة المخصصة للحجز الإحتياطي على ext3/4

نظام تسيير الملفات ext3/4 على غنو/لينكس يوفر خاصية الحجز الإحتياطي للتقليل من تجزئة الملفات (fragmentation) و ليتيح لحساب مدير النظام root صيانة النظام في حالة إمتلاء القرص الصلب. نسبة الحجز الإفتراضية هي 5% من مساحة القرص أو من مساحة كل قسم (partition) مهيأ بـ ext3/4.

في أغلب الأحيان تعديل هذه النسبة ليس مهما إلا إذا قارب قسم ما على الإمتلأ و كنت في حاجة ماسة لبعض المساحة الإضافية، أوعند استخدام قرص صلب ضخم بسعة 300 جيجا فما فوق، لنحسبها:
  • قرص صلب بـ 300 جيجا × 5% = 15ج
  • قرص صلب بـ 500 جيجا × 5% = 25ج
  • قرص صلب بـ 1 تيرا × 5% = 50ج
و حتى نبقئ في منطقة الأمان لن نلغي هذه الخاصية بل سنترك مساحة الحجز في 1% و هي نسبة كافية.

سننفذ:
sudo tune2fs -m 1 /dev/القسم

بعد أن نغير كلمة القسم بمعرف القسم الأساسي عندك، مثال: sda1 أو sda2 أو loop0 و هكذا

الأمر التالي سيعرض معرف القسم الأساسي /
cat /proc/mounts | grep -i " / ext"

في حالتي إليكم الصور :)



نوفمبر 13، 2010

كيف تحمي ملفاتك من التلف جراء إنقطاع التيار الكهربائي و تجمدات النظام على جنو/لينكس

هذا الموضوع لن يتطرق إلى حماية الملفات من السرقة أو الإختراق و لا حتى من هجمات بعض البرامج الضارة على نظام جنو+لينوكس. أيضا لن أدخل في تفاصيل معقدة حتى أجعل منه سهل الإستيعاب.

لنبدأ ببعض الحقائق التي قد تجدها بديهية أو غريبة:

* الأقراص الصلبة، كباقي قطع العتاد على الجهاز، قابلة للتلف بإنذار أو بدون إنذار مسبق، لسبب وجيه أو حتى من دون أي سبب واضح.

* الأقرص الصلبة حسب نوعية و جودة التصنيع، قد تخضع لإختبارات جودة مطولة، خفيفة أو حتى من دون أدنى اختبار للجودة طبعا مع فرصة تبديلها بغيرها (هي أيضا دون أدنى اختبار) إذا علمت بوجود علة فيها و أرجعتها إلى المصنع أو المزود (طبعا ليس في بلادنا العربية)

* هناك خاصية تسمى S.M.A.R.T تدعهما أغلب الأقراص الصلبة الحالية و هي باختصار قدرة القرص الصلب على تحليل و مراقبة أداءه بنفسه و إخبار المستخدم بوجود أعطال أو مشاكل قد تنبئ بالتلف الكلي أو الجزئي للقرص الصلب. لكن مع الأسف هذه الخاصية غير مفعلة بشكل إفتراضي على عدد كبير من الحواسب أو أن بعض الأنظمة (أقصد ويندوز هنا) لا تكترث لها.

* هناك نسبة جد جد صغيرة (لكن احتمال أن تصادفها يرتفع مع الوقت و كثرة البينات المكتوبة) بأن تكتب بعض معلوماتك بطريقة فاسدة و بصمت (silent data corruption) دون أية مشاكل أو رسائل أخطاء إلى أن تتكرر الحالات وتستعجب لإرتفاع أخطاء المقارنات من نوع md5 و غيراها دون أي سبب وجيه. راجع هذه المقالة على ZDnet

* بعض الأقراص الصلبة تكذب عندما تقول أنها خزنت بياناتك لأنها تستخدم ذاكرة مؤقتة تسمى (Write Cache) تجمع فيها بضع عمليات قبل أن تنفدها دفعة واحدة و ذلك لتحسين الأداء.

* بعض الأقراص الصلبة العملاقة (من حجم 2TB و ما فوق) تكذب في وصفها لمساحة القطاعات بـ 512bytes بينما تستخدم قطاعات بمساحة 4Kbytes أو 8Kbytes

و في كلى الكذبتين قد يتوه النظام أو بعض أدوات النظام ما بين هو حقيقي و بين ما يدعيه القرص الصلب.

* هناك مشاكل أخرى لها علاقة إما بموصلات البيانات و جودتها أو تغدية الطاقة التي قد تكون أو تصبح رديئة أو غير كافية.

* ثم ضف إلى كل ما سبق (و هناك الكثير من الحقائق الغير مذكورة) ما هو برمجي و هنا أقصد نظام التشغيل و البرامج التي تشتغل عليه التي قد تحمل علل برمجية قد تتسبب في فقدانك لبياناتك جزئيا أو كليا، بعلمك أو من دونه.


ماذا يمكن أن تفعل أمام كل هذا؟


1. لا توهم نفسك:

* أترك نسخ احتياكية و اضافية لملفاتك الضرورية على أقارص مدمجة (DVDs/CDs) بجودة لا بأس بها أو عالية الجودة و بشكل دوري، كما لا تعتمد على ذاكرات الفلاش (USB flash memories) أبدا كوسلية تخزين احتياطي.

* استخدم خدمات التخزين السحابية للملفات الصغيرة (أقل من 30MB) مثل Ubuntu One, DropBox, FileDen أو حتى Google Docs

* إذا كنت مطورا، مصمما أو تعمل على أي شيء به ملفات عديدة، إستخدم الخدمات السحابية التي توفر أنظمة للتحكم بالمراجعات بواسطة Git أو Mercurial مثل GitHub, Gitorious, BitBucket و غيرها الكثير.

* اذا كنت تعمل ضمن فريق/شركة صغير/ة و توفرتم على جهاز NAS (حاسوب مصغر ببضعة أقراص صلبة تعمل على RAID) أو تتوفر على حاسوب ثانوي استخدمه كوسيلة تخزين على الشبكة. طبعا نظام التشغيل الذي ستثبته عليه يجب أن يكون أي شيء يدعم نظام تسيير الملفات ZFS مثل Nexenta أو FreeNAS. لا جدال في هذه النقطة. هذا الحل لا يغني عن أقراص DVD بل مكمل لها. أو على الأقل استخدم قرص صلب خارجي.

* اذا توفرت على قرصين صلبين استخدمهما كمرآة للآخر بواسطة تقنية RAID1 عند تثبيت نظام جنو+لينوكس. راجع توثيق توزيعتك لتعرف كيف تفعل ذلك.

* اشتري مزود الطاقة اللامنقطعة (UPS) إذا أمكن لك.


2. اختر بين الأداء أو الآمان على أنظمة تسيير الملفات Ext

* نظام جنو+لينوكس يدعم عدد كبير من أنظمة تسيير الملفات، لكن على أغلب التوزيعات نحصل على ثلاثة أو أربعة اختيارات منها.

* Ext2 لا يصلح إلا لقسم الإقلاع /boot لأنه أكثر توافقية و من دون تعقيدات خاصية السِجلّ/قيد الحواجز (Journaling)

* Ext3 عُوض بـ Ext4 الذي حسن أداء السابق و التهم ملفات الكثيرين إلى أن عمل مطوروا النواة على جعهله أكثر استقرارا في الإصدارات الأخيرة و هو الآن شبة آمن.

* XFS أداءه أفضل من Ext4 و يوفور نفس درجة الأمان الإفتراضية لـ Ext3 و أفضل من درجة أمان Ext4 الإفتراضية.

* JFS جيد إلا أن تقرأ عنه أنه قد يبقى دون تخزين فعلي للبيانات الوصفية (Metadata) لبضعة دقائق إلى ساعات من التعديلات، فتصور معي كيف ستكون حالتك بعد تجمد النظام أو انقطاع مفاجئ للكهرباء.

* ReiserFS4 أفضل منهم لكنه لم يدرج مع النواة و الآن هو غير مكتمل لأن مطوره الأصلي مسجون بتهمة قتله لزوجته.

* BtrFS ما زال قيد التطوير و سيحتاج للسنتين أو ثلاثة على أقل تقدير بعد اصداره ليصبح مستقرا و آمنا. لا تفكر أن تستعمل الإصدار التطويري له الآن و إليك السبب.


* ما هي مشكلة كل أنظمة تسيير الملفات تلك؟
القرص الصلب مليئ بالملفات و هو دائما في حالة الكتابة و/أو القراءة عليها و على أجزاء محجوزة مخصصة لمعرفة مثلا: تاريخ انشاء الملف، المجلد الذي يوجد بداخله، مكان تواجده الحقيقي على القرص سواء ككتلة واحة أو ككتل مجزئة و منتشرة على مناطق من القرص الصلب و اشياء أخرى كثيرة.

لكي تعرف أنظمة الملفات تلك ما تم تعديله و لكي تحافظ عليها بشكل متناسق حتى في حالات تجمد النظام أو انقطاء مفاجئ للكهرباء يجب أن تستخدم السِجلّ (Journal) لكي تتبع كل ذلك.

لو لم تستخدم سِجلّ لكان عليها أن تفحص كل الملفات سواءا التي عدل عليها قبل سنة و لم تمسس منذ تلك اللحظة أو التي كنت تعدل عليها لحظة التجمد. و بذلك لأخدت عملية الفحص دقائق إلى ساعات.

إذن السجل مفيذ، لكن يضيف مشكلة صغيرة و شريرة تظهر عند تجمد النظام أو انقطاع التيار الكهربائي أثناء تعديل السِجلّ. ( لا ننسى الآن أنه باستخدامنا للسجل عند انشاء، حدف أو تعديل أي ملف يجب تعديل معلوماته على القرص بالإضافة إلى تحديث السِجلّ كي يطابق حالة القرص الحقيقية).

الحالات التي يمكن أن نواجهها هي:
* عُدل السِجلّ قبل تعديل محتوى الملف. في هذه الحالة إما سيتم التراجع إلى حالة السِجلّ السابقة دون أن نخسر شيء أو سيلغى الملف من السِجلّ و ستضيع حتى النسخة الأصلية لأنها حسب السِجلّ أصبحت غير موجودة أو فاسدا. هذه الحالة ستواجهها إذا استخدمت نمط data writeback mode للحصول على أعلى أداء ممكن من القرص الصلب.

* عُدل الملف دون أن يعدل السِجلّ. لن تخسر نسختك الأصلية للملف لكن ستخسر التعديلات. و أحيانا بسبب الأقراص التي تكذب لإستخدامها لذاكرة Write Cache أو لتخزين أجزاء الملف دون ترتيب أولوي قد تحصل في النهاية على ملف به أجزاء قديمة و أخرى حديثة. هذه الحالة ستواجهها إذا استخدمت نمط data ordered mode و هو الخيار الإفتراضي لـ Ext3 و Ext4. لكن Ext4 أسوأ لاستخدامها خاصية الحجز المتأخر (delayed allocations)

* عُدل السِجلّ كليا ثم يعدل محتوى الملف كليا ثم يعدل السجل/أو يتحقق منه من جديد. في هذه الحالة ستضمن أن النسخة الأصلية آمنة إن فشل التعديل عليها أو أنه تم تعويضعا بالنسخة الجديدة بنجاح. بمعنى أن القرص و ملفاتك دائما ستبقى متناسقة. هذا النمط يسمى بـ data journal mode و هو المفضل لكل من يريد أعلى درجة تناسق و أعلى حماية من التجمدات و انقطاعات التيار الكهربائي لكن على حساب تراجع أداء القرص أثناء الكتابة رغم أنه يحقق سرعة قراءة أعلى من الأنماط الأخرى.


3. كيف نحمي الملفاتي من التجمدات و انقطاعات التيار الكهربائي على نظام الملفات Ext3 و Ext4
لكي نعرف النمط المستخدم سننفذ الأمر التالي:
cat  /proc/mounts | grep data=

و ستكون النتيجة غالبا كما يلي:
/dev/mapper/VG-LV00 / ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0


أ. قسم الجدع /

الآن يجب عليك ألا تنسى هذه المعلومة أبدا. نمط data=jounal لا يجب أن يضاف إلى القسم الذي يضم جدع النظام / من خلال تعديل الملف /etc/fstab بل يجب إضافته كمعيار للنواة أثناء الإقلاع بتعديل ملف /etc/default/grub

لكن قبل أن تعديله حاول تجربة الإقلاع بذلك النمط بشكل مؤقت (حتى نتفادا المفاجأت) بالضغط على الزر a من على مدير الإقلاع المسمى بـ grub ثم اضافة
rootflags=data=journal

إذا أقلع النظام بدون أية مشاكل يمكن بعدها تعديل الملف /etc/default/grub و اضافة  rootflags=data=journal إلى السطر التالي

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

فيصبح :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rootflags=data=journal"

ثم تنفد الأمر التالي كي تؤخد تلك التعديلات بعين الإعتبار:
sudo update-grub


ب. الآن، ماذا عن الأقسام الأخرى التي لا تضم الجدع /

يكفي تعديل الملف /etc/fstab ثم اضافة data=journal بعد ,defaults لكل قسم يستخدم النظام الملفات ext3 أو ext4. ستكون النتيجة شبيهة بما يلي:

/dev/sda3     /media/disk-102 ext4      defaults,data=journal    0    1
/dev/sdb4     /media/mdisk/    ext4     defaults,data=journal    0    1



4. ماذا لو أردت الإثنين: الأمان و الأداء
استخدم أي شيء بأربعة أقراص صلبة على RAID 0+1. تقريبا سيتضاعف الأداء و تسطيع أن تخسر قرصين دون فقدانك لمعلوماتك. أي تخصيص RAID آخر لا يظاهي RAID 0+1 على أربعة أقراص.

في حالة توفرك فقط على ثلاثة أقراص صلبة: استخدم قرصين على RAID 1 و الثالث مستقل مخصص فقط لنظام التشغيل، على أن تترك نسخة احتياطية له بشكل دوري على القرصين بمصفوفة RAID 1. إن تعطل القرص المستقل ستسترجع نظامك على البديل الجديد له في دقائق معدودة.

لا تستخدم RAID0 مهما نصح به. RAID5 فقط للمراهنين و لا أنصح به مهما وجدته جذابا.


5. ماذا عن مشكلة الفساد الصامت للبيانات؟
لا حل له سوى باستخدام نظام تسيير ملفات يدعم (checksumming) مثل  ZFS على أنظمة التشغيل المشتقة عن OpenSolaris و FreeBSD، أو BtrFS على لينوكس بعد سنتين أو ثلاثة من صدوره، أو بمبلغ محترم مخصص لشراء RAID Controller يدعم Data Integrity Field.


6. نظام جنو+لينوكس يوفر حلول برمجية للتخزين و النسخ الإحتياطي لكل أنواع الإحتياجات
بدءا من البرنامجين SBackup و Déjà Dup الموجهين للمستخدم العادي، ثم البرنامجين Back in Time و TimeVault البديلين لـ Time Machine على ماك و System Restore على ويندوز، وصولا إلى  الحلول البرمجية الجد متقدمة و الموجهة بالدرجة الأولى للشركات مثل Amanda و Bacula دون أن ننسى أداة rsync من على سطر الأوامر و غيرها العديد (التي قد تنسخ 60 مليون ملف بكل بساطة)، فإن منصة جنو+لينوكس يمكن الإعتماد عليها في تخزين و حماية ملفاتك بلا منازع.


بعض المصادر للتعمق أكثر:
Linux Kernel Doucmentation :: Filesystems

يونيو 05، 2010

كيف تهيئ القرص الصلب لاستقبال نظام جنو/لينوكس باستخدام GParted

أولا و قبل كل شيء يجب عليك أن تعلم أن تجهيز القرص الصلب لاستقبال نظام آخر قد يتسبب في ضياع ملفاتك بشكل كلي أو جزئي إما بخطأ غير مقصود منك أو بسبب علة في البرامج و الأدوات التي استخدمتها لتهيئة القرص الصلب. لذلك قم بحفظ ملفاتك المهمة على وسيلة تخزين خارجية (usb, cd-rom, dvd-rom..) قبل أن تلمس القرص الصلب.

برنامج GParted متخصص في تهيئة و تقسيم الأقراص الصلب و هو يوجد بشكل افتراضي على أغلب توزيعات جنو/لينوكس و كذلك يأتي على شكل ملف ISO قابل للحرق حتى تتمكن من استخدامه بشكل مستقل لتهيئة و تقسيم الأقراص الصلبة. الملف (gparted-live-x.x.x-x.iso) يمكن تحميله من هنا. بعد ذلك تحرقه على قرص مدمج (cd-rom) باستخدام برنامج كـ ImgBurn أو Brasero أو K3B. بعد ذلك تقلع الجهاز (Boot-up) باستخدم قرص GParted.

الآن أفترض أنك تتوفر على قرص صلب واحد بسعة 80GB و يضم قسم واحد مخصص لاستيعاب نظام ويندوز و باقي ملفاتك الشخصية.

الخطوات بالصور:

بالنسبة للأسئلة الأولى عند الإقلاع يمكنك تجاهلها بالضغط على Enter.


نحدد الجزء الأساسي ثم ننقر على الزر Resize/Move

ثم نحدد المساحة التي نريد أن ننقصها من الجزء الأساسي و التي ستخصص فيما بعد لاستقبال نظام جنو/لينوكس. 20GB أو 20480MB كما في الصورة كافية.

بعد تنفد التعديلات من خلال النقر على الزر Apply. العملية ستستغرق بضعة دقائق حتى تنتهي.


بعد الانتهاء من تقسيم القرص الصلب ستلاحظ أن هنالك قسمين، الأول خاص بنظام ويندوز ( نوع نظام تسيير الملفات هو ntfs) و الثاني فارغ غير مخصص لأي نظام و لا يستخدم أي نظام تسيير الملفات.


ملاحظة: هذا الموضوع له علاقة بتدوينات  "دليل تثبيت آرتش لينوكس من البداية إلى النهاية" الذي سأنشره في الأيام القليلة المقبلة.

تحديث:
إدا لم يكن البرنامج المكلف بتقسيم الأقراص موجودا على التوزيعة التي تود استخدامها أو أنك لم ترتاح إليه لسبب أو لآخر (كما هو الحال مع Chakra Linux) عليك تتبع هذه الخطوات الإضافية حتى تكمل تقسيم القرص الصلب:

أولا تحدد القسم الفارغ "Unallocated" ثم تنقر على New و تحدد 120 كمساحة و ext2 كنظام تسير الملفات ثم تنقر على Add.

ثانيا تحدد القسم الفارغ "Unallocated" مرة أخرى و تنقر على New و تحدد Extended Partiton بدلا من Primary Partiton ثم تنقر على Add.

ثالثا تحدد القسم الفارغ "Unallocated" من جديد و تنقر على New و تحدد linux-swap كنظام تسيير الملفات ثم تحدد 1024 كمساحة جزء الإبدال ثم تنقر على Add.

رابعا تنتقل للقسم الفارغ "Unallocated" من جديد و تنقر على New و تحدد ext4 كنظام تسيير الملفات ثم تحدد 10240 (أي 10GB) كمساحة الجزء الأساسي الذي سيتقبل النظام ثم تنقر على Add.

خامسا تنتقل مجددا إلى القسم الفارغ "Unallocated" و تنقر على New و تحدد ext4 كنظام تسيير الملفات ثم ما تبقى من المساحة للجزء الذي سيتقبل ملفاتك الشخصية ثم تنقر على Add.

سادسا تنفد التعديلات بالنقر على الزر Apply.

بعد الانتهاء عليك أن تتذكر أسماء/معرفات الأقسام لأنك ستحتاج إلى إدخالها أو تحديدها لحقا على التوزيعة التي تود تثبيتها.

حسب مثالنا:
/dev/sda1 مخصص لويندوز و ملفاتك الشخصية عليه.
/dev/sda2 سيخصص لقسم الإقلاع /boot
/dev/sda5 سيخصص لقسم الإبدال swap
/dev/sda6 سيخصص للقسم الأساسي أو الجدع / (root)
/dev/sda7 سيخصص كقسم لملفات المستخدمين /home

أبريل 23، 2010

دردشة تقنية - من هنا و هناك - متفرقات

لا أعرف كيف ستصنف هذه التدوينة أهي باليوميات، أم ماذا؟ :
  • حاليا أحضر تدوينتين أو ثلاثة بخصوص تثبيت و إعداد توزيعة أرك لينوكس (أفضل توزيعة على الإطلاق :) :) :) هل أنتم مستعدون!؟) سأنشرهما مع نهاية الأسبوع المقبل. بالمناسبة سبب تأخري عن إكمال موضوع تثبيت دبيان دائم التحديث/المقبل هو أنني أضعت قرص الآلة الإفتراضية عن طريق الخطأ. سأكمله في القريب العاجل و قد أضيف موضوع آخر بخصوص دبيان الإصدار المستقر مع التلميح إلى سيدوكس (sidux لاحظ أنها كتبت بالأحرف الصغيرة لأن المطورين يريدونها أن تكتب كذلك :) و قد فقدوا الكثير من شعر الرأس محاولين تحسيس المدونين بذلك)
  • مسيرتي مع تجربة مختلف التوزيعات و الأنظمة التي ينظر إليها "صعبة" أو خاصة بالمتقدمين ما زالت مستمرة. الملخص بالنسبة لـ :
    • Slackware: لم انتهي منها بعد و لكن ما لاحظته إلى الآن هو تتميزها بالسرعة. هنالك تحسن من ناحية الأدوات التي تسهل عملية التحديث التلقائي و التكفل بحل الاعتمادات (Dependency). اخترت استخدام واجهة جينوم  لأنها غير مدعومة رسميا من التوزيعة حتى أكون صورة واضحة عن التوزيعة و ما قد يواجهك.
    • Gentoo: لم أنتهي منها بعد لأنها تحتاج إلى الكثير من الوقت لتجميع البرامج التي ستستخدمها من الكود المصدري. لا أعتقد أنني سأكون من مستخدميها يوما ربما لكثرة التفاصيل و الإعدادات و الاختيارات التي عليك أن تقوم بها و تتخذها. لكن من جانب أخر كان ذلك درسا قاسيا تعلمته لأنه يسهل علي انتقاد بعض التوزيعات كأبونتو مثلا رغم أنه ليس لي أية فكرة عن ما يتطلبه الأمر من مجهود و وقت. و كما تعلمون الوقت يساوي المال، و أبونتو مجاني و يصلك إلى باب المنزل. وجب علي القليل من التقدير. توزيعة أخرى تنحدر من Gentoo مباشرة و متوافقة معها 100% هي Sabayon و Sabayon Core ما زلت على قائمة الانتظار.
    • FreeBSD 7.3: سبق و أن ثبتت نظام FreeBSD 8.0 و ترك انطباع مميزا غير أنه لم يتسنى لي بعد تجربة الترقية من إصدار إلى إصدار. ما قمت به هو تثبيت 7.2 بكل ما أحتاج قبل يومين من صدور 7.3. و يوم الإصدار كتبت بضعت أسطر على سطر الأوامر و بووووم الترقية إلى 7.3 تمت بنجاح :)
    • OpenSolaris 2009.06: أعتقد أن هذا النظام أكثر الأنظمة المفتوحة المصدر التي أبهرتني باستقرارها و تطورها التقني الموجه بالدرج الأولى إلى الخوادم و حتى الحواسب المكتبية حاليا. أكثر شيء أبهرني تحديدا هو نظام تسيير الملفات ZFS رغم أني لم أنبش فيه غير السطح. لا تسألني ما ذا يميزه لأني لا أعرف بعد، كل ما أعرف بعد تجربة الارتقاء إلى الإصدار 2010.03 هو أنه بفضل ZFS تستطيع الإقلاع بأي "بيئة" كما يسميها هو. بمعنى آخر، لنفترض أن نظامك مستقر و يعمل بأحسن حال ثم ظهر إصدار جديد، ستفكر بالترقية فور توفر الوقت و كنت مستعدا لذلك. لكن ماذا سيكون حالك إن تعثرت عملية الترقية رغم كل شيء؟ في أية حالة سيكون النظام؟ هل سيقلع أو يعمل؟ لا تفكر بذلك مع ZFS لأنها ستوفر لك الإقلاع بأية "بيئة" أو حالة سابقة مهما كانت الأسباب و المشاكل التي قد تواجهها. ZFS هي "سوبر مان" أنظمة التسيير الملفات و منافسها على نواة لينوكس سيكون Btrfs. و حاليا كل من Btrfs و ZFS و OpenSolaris خاضع لسيطرة أركل Oracle. عيب OpenSolaris هو أنه يحتاج إلى 1GB من الذاكرة على الأقل و 2GB لتعمل بشكل عادي ثم يفضل أن تتوفر على كرت الشاشة من نوع nVidia. ماذا لو أردت تجربة و إستخدام ZFS؟ هنالك OpenSolaris طبعا و FreeBSD 8.0/8.1 و توزيعة Nexenta. هذه الأخيرة عبارة عن أبونتو بنواة OpenSolaris بدلا من نواة لينوكس. (أو حتى على لينوكس من خلال Fuse مثلما هو الحال مع NTFS-3G). تحديث: فيدورا 13 ستوفر ميزة شبيهة بما شرحت أعلاه بالاعتماد على Btrfs، ممتاز :)
    • توزيعات ما زلت تحت لائحة الانتظار: Red Hat EL 5.5 و 6.0 التجريبي إلى جانب CentOS 5.4. ثم LinuxFromScratch, OpenBSD, NetBSD, Sabayon ثم تلك التي مضى عليها وقت طويل دون تجربتها مثل Mandriva, Mint و PCLinuxOS الذي صدر مؤخرا.
  • بالنسبة للإصدارات المقبلة هنالك توزيعة أبونتو 10.04 ذات الدعم الطويل (LTS) و توزيعة فيدورا 13. جربت كليهما و تتبعت تطورهما لأكثر من إصدار تطويري، ستكونان حتما مميزتان عند الإصدار النهائي. إدا توفر لي الوقت سأكتب عنهما قبل أن تصدرين.
  • بالنسبة للأفضلية بين لغة روبي و بايثون أعتقد أني أرتاح مع بايثون أكثر رغم أنني أفضل ميزة blocks و التوجه الكائني المنحى الخالص للسابق.
  • قمت بتثبيت إضافة فايرفوكس تدعى بـ RescueTime تكون تقرير بالطريقية التي تقضي بها وقتك على المتصفح. الإضافة تحتاج إلى أسبوع تقريبا لتكون عليك صورة واضحة. سوف نرى النتيجة بعد أسبوع *_*
  • بالنسبة للموضوع المتصفحات الذي سبق و أن وعدت بكتابته هنا و هنا فلن أقوم بذلك. مصممي الصفحات يعلمون الفرق جيدا بين مختلف محركات العرض للمتصفحات و الأشخاص العاديين لا يعنيهم الأمر شيئا. شيء واحد فقط أريد أن يصل إلى الناس أن هنالك بدائل لتلك العلامة الزرقاء.



    أعتقد أن هذا كل شيء، كما ترون كنت أغش قليلا، فكلما توفرت لي ساعة أو ساعتين (و أحيانا على حساب عدد ساعات نومي :S) أجرب شيئا ما :)

    تحديث:
    • نسيت أن أضيف إلى أنه أصبح من غير اللائق أن أضل مستخدم سلبي للمصادر المفتوحة و الحرة بعد كل هذا الوقت، لذلك سأعمل على أن أحسن من مهاراتي على بايثون، سي و سي++ لأساهم و لو بقليل في التطوير و الدعم البرمجي.
    • سأكون متفرغ قليلا في الأسبوع المقبل، سأحاول فيه تكملة بعض الأمور العالقة.

    فبراير 26، 2009

    أنواع أنظمة تسيير الملفات على جنو/لينكس و تجربتي الأخيرة مع Ext4 و LVM2

    سأتحدث اليوم عن تجربتي الأخيرة مع LVM, EXT4 و القرارات التي يتم إتخادها لإدراج البرمجيات في توزيعات لينوكس.

    أولا جنو/لينوكس مبني على حرية الإختيار فبإمكانك كمستخدم أن تتدخل في كل مستويات النظام و كل البرمجيات التي تريد أن تستخدمها. كما أستطيع أن أكد لكم أنه رغم أربعة سنوات من إستخدامي لهذا النظام لم أستطع حتى ضبط الأساسيات، و ذلك ليس لأنه صعب بل لأنه بحر من المعلومات التقنية و الإختيارات.

    و لا تنظر إلى هذه الإختيارات على أنها عائق بل هي حلول لمختلف أنواع المتطلبات / الأعمال. فمثلا نفس النظام يمكن أن يستخدم من طرف مُشرف الشبكة، أو أن يُستخدم في مستقبالات القنوات الفضائية أو في طابعات الورق الحديثة، أو في أجهزة الهاتف النقال أو على حاسوبك الشخصي. هذه الأمثلة حقيقية اليوم و هنالك أكثر من هذا.

    ثنيا، حتى لو كنت تستخدم فقط أجهزة الحسوب العادية فيمكن أن تختار البرامج و الإعدادات التي تناسب قدرات و مواصفات هذه الأجهزة. فمثلا يمكن أن تقوم بإعداد نواة النظام و باقي البرامج التي تسخدمها لتستفيد من أخر نقطة أداء في معالج حاسوبك (على أساس أن يكون المعالج في هذه الحالة من فئة Multi Cores مثل Intel Core 2 Duo/Quad/I7) أو تستخدم إعدادات تسمح لك بالوصول إلى الحد الأقصى في الأداء في القراص الصلبة. القائمة الطويلة لكن لا أحد يفرض عليك أن تقوم بتعديل كل شيء، يمكنك أن تستخدم الإعدادات الإفتراضية. فقط أردت أن أشير أنه إن كان لك شغف بمعرفة التفاصيل فستجد في منصة جنو/لينوكس كل المساحة الكافية لذلك.

    من بين الإختيارات التي يجب عليك أن تقوم بها هي أي نظام تسيير الملفات تريد أن تستخدم. كما لا يشترط أن تستخدم واحد فقط، يمكن أن تمزج بينهم. من أهم أنظمة تسيير الملفات ستجد Ext2، Ext3، و Ext4 ثم JFS, XFS أو Reiserfs3 و قريبا سنرى BtrFs و Tux3. و يمكن إعتبار Ext3 هي الإختيار الإفتراضي في أغلب توزيعات جنو/لينوكس.

    سأقوم بشرح مبسط للفرق بينها. أولا Ext3 هي تطور لـ Ext2 بحيث أن أهم خاصية تميزها على هذه الأخيرة هي إستخدام سجل لتسجيل التغييرات (Journaling file system) التي تقع على الملفات الشيء الذي يزيد من درجة الأمان من الأعطال التي قد تصب الملفات في حالة فشل أو إنقطاء الكهرباء. كما أن هذا النظام لا يسبب تجزء الملفات بشكل كبير كما هو معروف في ويندوز (File Fragmentation)

    XFS و JFS يتميزين بالسرعة ينصح بهما على أجهزة الحاسوب النقال و الأجهزة القديمة. يتوفرين على مزايا تقنية مهمة خصوصا XFS. كما ينصح بهذه الأخيرة في حالة أردت إستخدام مساحات عملاقة لكنها أكثر عرضة للتجزئة مقارنة مع Ext3.

    بالنسبة لReiserFs3 يمكن إعتبارها أنها كانت تحتوي على مجموعة من التقنيات و المزايا التي كانت تجعل منها الإختيار الأنسب إن أردت السرعة، الأداء و الأمان في نفس الوقت، لكن تقلص الفرق. كان سيكون هناك إصدار 4 منها لولا وقوع بعض النزاعات بين مطوره و مطوري نواة لينوكس من جهة و لولا إرتكاب مطوره لجريمة قتل. مازال مشروع Reiser4FS قائما و لكن لا يحضى بتطوير نشيط.

    Ext4 تم تفعيله في الإصدار الأخير لنواة لينوكس 2.6.28 و هو تطور لـ Ext3. و من أهم الميزات هذا النظام تحسين الأداء بصفة عامة، مزايا أمان جديدة، قدرة إستعاب كبيرة تصل إلى 1ُExaByte أو مليار جيجابيت.

    BtrFS نظام الملفات المستقبلي لمنافسة نظام تسيير الملفات الشهير و المتطور ZFS. سيصدر هذه السنة. سيظم هذا النظام كل الخصائص التي حلم بها المطورون يوما :)

    Tux3 يشبه BtrFS في التطور لكن يعطي الأولوية للتقنيات الأكثر إستخداما. يمكن إعتباره BtrFS من الوزن الخفيف.


    جيد حتى الآن. فما قصة LVM؟
    LVM أو Logical Volume Manager أو مدير الأقراص المنطقي هو عبارة عن خاصية يتم تفعيلها للتعامل مع الأقراص و تجزيئات الأقراص بشكل منطقي. فعلى سبيل المثال إن كان لك قرصين صلبين الأول سعته 80GB و الثاني 160GB و أردت التعامل معهما على شكل قرص صلب واحد بحيث تصبح سعته مشتركة (في هذه الحالة ستظهر المساحة بسعة 240GB) يمكن فعل ذالك من خلال تفعيل LVM.
    كما تسهل خاصية LVM التعامل مع الأجزاء Partitions و يصبح من السهل تضخيم و تقليص الأجزاء بكل سهولة و كذلك إضافة أو إزالة الأجزاء بكل سهولة.

    شخصيا لا أنصح بها إلا إدا كنت تستخدم RAID و تعي ما تفعله جيدا. كما أنصح بالتأني بعض الوقت قبل المرور إلى Ext4 على الأقل حتى إصدار النواة الجديدة.

    حاليا أستخدم Ext4 على القرص الأول و أحتفض بـ Ext3 على القرص الثاني. لم أرى أية مشاكل بل تحسن في أداء القرص الذي يستعمل Ext4. كما ألغيت خاصية LVM2 بعدما رأيت أنها لم تقدم لي أي إمتياز، بل يمكن أن تتسبب في تعقيدات أنا في غنا عنها.

    و أخيرا من خلال هذه التجربة الأخيرة أدركت لماذا يختار بعض مطوري توزيعات جنو/لينوكس الإحتفاض ببعض الأجزاء من البرمجيات في الإصدارات السابقة (خصوصا توزعتي Red Hat و CentOS). رغم أنه قليل من هم يدركون هذا و الأغلب يفضل إدراج الإصدارات الجديدة.

    أما إن كنت تتساءل عن التوزيعة التي أستخدم و كيف قمت بحل المشكل؟ الجواب هو توزيعة ArchLinux التي تحضى بإدراج دائم لآخر الإصدارات و هو ما أوقعني في ذلك العطل (و الخطأ خطأي). و الحل كان كذلك بإستخدام تقنية عجيبة في هذه التوزيعة و هي الرجوع بمرآة التحديثات إلى الوراء ثم تثبيت الإصدار السابق الذي كان يعمل، ثم تجميده على ذالك الإصدار ثم الرجوع إلى الأمام و تحديث كل شيء. و النتيجة كانت نظام لينوكس بنواة kernel 2.6.28.7 و KDE 4.2 و Xorg 7.3 بدلا من Xorg 7.4

    سأكتب عن الطريقة التي يمكن لكم أن تثبتوا بها هذه التوزيعة قريبا.

    تحديث 1: عثرت على مقالة تقنية بخصوص Ext4 (بالإنجليزية) يمكن الإطلاع عليها لمن أراد ذلك.
    Anatomy of ext4

    تحديث 2 (20/03/2009): من الأفضل أن بتم تفادي إستخدام Ext4 للجزء المخصص لـ Home حتى يتم إصدار النواة 2.6.30 و ما فوق.