سؤال أي نظام ملفات لينكس يعمل بشكل أفضل مع SSD


من الويكي:

يتم دعم وظيفة TRIM الحيوية بواسطة نظام التشغيل Linux بدءًا من   2.6.33 kernel (متوفر في أوائل عام 2010). ومع ذلك ، لا يزال الدعم بين أنظمة الملفات المختلفة غير متناسق أو غير موجود. التقسيم الصحيح   لم يتم تنفيذ المحاذاة بواسطة برنامج التثبيت.

لذا ، أي نظام ملفات يعمل بشكل أفضل لـ SSD ويدعم محاذاة قسم TRIM + أثناء التثبيت ومتاح على Ubuntu؟


113
2018-01-03 17:44


الأصل




الأجوبة:


نظام الملفات EXT4 + TRIM:

  • EXT4 مع TRIM يحسن الأداء عن طريق تقليل الكتابة غير الضرورية دورات إلى محرك SSD لأنها تحد من دورات الكتابة وإعادة الكتابة.
  • يدعم Ubuntu وبعض نكهات Linux الأخرى EXT 4 مع نظام TRIM خارج الصندوق.

قسم SWAP:

  • تأكد من عدم وجود مساحة SWAP على SSD ، مرة أخرى للتقليل دورات الكتابة.
  • إذا كان لديك محرك ميكانيكي ، فعليك إنشاء مساحة SWAP على محرك الأقراص الميكانيكي ، وتجنب وجوده على SSD.

محاذاة التقسيم:

  • يجب أن يبدأ القسم على حدود 1 ميغابايت نظيفة بحيث حجم الكتلة من نظام الملفات محاذاة مع حجم كتلة SSD.

لذلك استخدم EXT4 + TRIM باستخدام SWAP على محرك القرص الصلب الميكانيكي أو بدون SWAP على SSD.

ما سبق يمكن تنفيذه بالإشارة إلى المصدر: كيفية تعظيم أداء SSD.


87
2017-08-30 06:05



GPT هي الطريقة الحديثة التي تستخدم gdisk و grub 2.0.x(أظن أن أحدهم قد ذكرها أدناه في جواب) و MBR هي طريقة قديمة باستخدام القديم grub 0.9.7 و fdisk.. يمكن إيجاد المزيد هنا : wiki.archlinux.org/index.php/Solid_State_Drives - aliasgar
من غير الضروري تحديد nodiratime عندما تحدد أيضا noatime. متفق عليه ، يبدو باردا ومتقدما لزملائه المهووسين ، ولكن منذ ذلك الحين noatime يعطل atime onode ، والدلائل هي inodes أيضا ، انها مثل القول "اغسل يديك ، واغسل أصابعك أيضًا". :) - Redsandro
من الخبرة يمكنني القول أنه لا يوجد جدولة ("noop") يعمل بشكل أسرع من الموعد النهائي. - drumfire
لا، "أقسام مبادلة لينكس تقوم بشكل افتراضي بتنفيذ عمليات TRIM عندما يدعم جهاز الكتل الأساسي TRIM ، مع إمكانية إيقاف تشغيلها ، أو الاختيار بين عمليات TRIM لمرة واحدة أو مستمرة. "يجب وضع تقسيم المبادلة على SSD للاستفادة من الصيام وقت الوصول ، والذي سيحمل الكثير من الوقت كل تبادل صفحة يحدث - phuclv
Totor كما ذكرنا في الرابط ، فإننا نقوم أيضًا بإعداد نسخة كاملة من الإجابات التي تم لصقها من مكان آخر مثل الانتحال. (أو نسميها بشكل مختلف ، ولكنها غير مقبولة حتى مع الإحالة). يرجى طرح المزيد من الأسئلة على ميتا. سأحذف هذا خارج الموضوع الموضوع. - slhck


اجابة قصيرة

  • أختر EXT4، وإما تركيبه مع discard الخيار ل تقليم دعم ، أو استخدام FITRIM (انظر أدناه). أيضا استخدام noatime الخيار إذا كنت تخشى "ارتداء SSD".

  • لا تقم بتغيير جدولة I / O الافتراضية (CFQ) على خوادم تطبيقات متعددةلأنه يوفر العدالة بين العمليات ولديه دعم SSD تلقائي. ومع ذلك، استخدام الموعد النهائي على أجهزة سطح المكتب للحصول على استجابة أفضل تحت الحمل.

  • لضمان سهولة محاذاة البيانات المناسبة ، يجب أن يكون قطاع البداية من كل قسم مضاعفات 2048 (= 1 MiB). يمكنك استخدام fdisk -cu /dev/sdX لإنشائها. في التوزيعات الأخيرة ، سوف يعتني بك هذا تلقائيًا.

  • فكر مرتين قبل استخدام المبادلة على SSD. من المحتمل أن يكون أسرع بكثير بالمقارنة مع مقايضة الأقراص الصلبة ، لكنه سيرتدي القرص بشكل أسرع (والذي قد لا يكون مناسبًا ، انظر أدناه).

اجابة طويلة

  • نظام الملفات:

EXT4 هو نظام ملفات Linux الأكثر شيوعًا (صيانته بشكل جيد). وهو يوفر أداء جيد مع SSD ويدعم تقليم (و FITRIM) ميزة للحفاظ على أداء جيد SSD مع مرور الوقت (هذا يزيل كتل الذاكرة غير المستخدمة لسرعة الوصول إلى الكتابة في وقت لاحق). NILFS تم تصميمه خصيصًا لمحركات أقراص الفلاش ، ولكنه يعمل أيضًا ليس  هل حقا اداء افضل من EXT4 على المعايير. Btrfs لا يزال يعتبر تجريبيًا (ولا يؤدي في الواقع أداءً أفضل إما).

  • أداء SSD و TRIM:

ال تقليم ميزة مسح كتل SSD التي لم تعد تستخدم من قبل نظام الملفات. سيعمل ذلك على تحسين أداء الكتابة على المدى الطويل ويوصى به على SSD نظرًا لتصميمها. هذا يعني أنه يجب أن يكون نظام الملفات قادراً على إخبار محرك الأقراص عن تلك الكتل. ال discardجبل الخيار من EXT4 سيصدر مثل هذا تقليم الأوامر عندما يتم تحرير كتل نظام الملفات. هذا هو تجاهل الإنترنت.

ومع ذلك ، يتضمن هذا السلوك مقدار حمل الأداء قليلاً. منذ Linux 2.6.37 ، يمكنك تجنب استخدام discard واختيار القيام به في بعض الأحيان تجاهل الدفعة مع FITRIM بدلاً من ذلك (على سبيل المثال من crontab). ال fstrim فائدة يفعل هذا (على الانترنت) ، فضلا عن -E discard خيار من fsck.ext4. ستحتاج إلى نسخة "حديثة" من هذه الأدوات.

  • ارتداء SSD:

قد ترغب في تقييد عمليات الكتابة على محرك الأقراص الخاص بك حيث أن SSD لها عمر محدود في هذا الصدد. لا تقلق كثيرا، يمكن للأسوأ اليوم 128 جيجابايت SSD دعم على الأقل 20 غيغابايت من البيانات المكتوبة في اليوم الواحد لأكثر من 5 سنوات (1000 دورة كتابة لكل خلية). أفضل منها (وأكبر منها أيضاً) يمكن أن يدوم لفترة أطول: من المحتمل جداً أنك استبدلتها بحلول ذلك الوقت.

إذا كنت ترغب في استخدامها مبادلة على SSD ، ستلاحظ kernel قرصًا غير دوراني وإرادته عشوائية استخدام المبادلة (تسوية مستوى ارتداء النواة): سترى بعد ذلك SS (الحالة الصلبة) في رسالة kernel عند تمكين التبديل:

إضافة 2097148k مبادلة على / dev / sda1. الأولوية: -1 الامتداد: 1   عبر: 2097148k SS

  • I / O جدولة:

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

الجواب طويل على المجدولين

بدءًا من kernel 2.6.29 ، يتم اكتشاف أقراص SSD تلقائيًا ، ويمكنك التحقق من ذلك باستخدام:

cat /sys/block/sda/queue/rotational

يجب ان تحصل على 1 للأقراص الصلبة و 0 ل SSD.

الآن ، يمكن أن جدولة CFQ تكييف سلوكها على أساس هذه المعلومات. منذ لينكس 3.1 ، وثائق النواة cfq-iosched.txt ملف يقول:

يحتوي CFQ على بعض التحسينات لمحركات أقراص الحالة الثابتة وإذا كشف عن عدم الدوران   الوسائط التي يمكن أن تدعم عمق قائمة انتظار أعلى (طلبات متعددة في   رحلة في وقت واحد ، [...].

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

يتم تجميع الطلبات في `` دفعات 'من اتجاه بيانات معين   (القراءة أو الكتابة) التي يتم خدمتها في زيادة طلب القطاع.

ومع ذلك ، قد يكون ضبط هذه المعلمة إلى 1 عند استخدام SSD أمرًا مثيرًا للاهتمام:

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

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

ومع ذلك ، فإن معيارًا أفضل سيحاول استخدام الموعد النهائي مع fifo_batch=1.

لاستخدام الموعد النهائي على SSDs بشكل افتراضي ، يمكنك إنشاء ملف ، قل /etc/udev.d/99-ssd.rules على النحو التالي:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"

63
2018-02-12 23:45



ما الذي تعنيه بهذا التقسيم الذي يتم ضبطه تلقائيًا على التوزيعات الأخيرة؟ هل ينطبق أيضًا عند استخدام التقسيم اليدوي أثناء إجراء عملية على سبيل المثال؟ تثبيت أوبونتو أو عند القيام بالتجزئة عن طريق gparted؟ - jarno
jarno في معظم التوزيعات الحديثة (لعدة سنوات حتى الآن) ، تميل أدوات التقسيم ، من fdisk إلى الأعلى خلال الأشياء الرسومية ، إلى الإعداد الافتراضي التلقائي لإنشاء محاذاة الأقسام بمضاعفات 1Mb من بداية الجهاز. يتوافق هذا بشكل استباقي مع 512 بايت ، و 4 k ، و 8 k ، ونصف bazillion الأخرى أحجام الكتلة / الكتلة التي هي 2 ^ n في الطبيعة. يجعل من المستحيل تقريبًا محاذاة قسم ما إلا إذا بذلت جهد كبير للقيام بذلك. - killermist


مقالة archlinux محركات الأقراص الصلبة يقول في القسم اختيار نظام الملفات :

توجد العديد من الخيارات لأنظمة الملفات بما في ذلك Ext2 / 3/4 ، Btrfs ، إلخ.

Btrfs 
تم تضمين دعم Btrfs مع الإصدار الرئيسي 2.6.29 من نواة لينكس. يشعر البعض أنه ليس ناضجًا بما فيه الكفاية   لاستخدام الإنتاج في حين أن هناك أيضًا من أوائل المستخدمين لهذا الأمر   خليفة محتمل ل ext4. يتم تشجيع المستخدمين على قراءة    Btrfs المادة لمزيد من المعلومات.

EXT4 
Ext4 هو نظام ملفات آخر يدعم SSD. تعتبر مستقرة منذ 2.6.28 وهي ناضجة بما فيه الكفاية للاستخدام اليومي.   على العكس من Btrfs ، لا يقوم ext4 تلقائيًا باكتشاف طبيعة القرص ؛   يجب على المستخدمين تمكين دعم قيادة TRIM بشكل صريح باستخدام   تجاهل الخيار جبل في fstab (أو مع tune2fs -o discard / dev / sdaX).

تحقق كل من Btrfs و Ext4 المتطلبات الأساسية لكفاءة استخدام SSD:

  • يجب أن يكون نظام الملفات قادرًا على إصدار أوامر ATA_TRIM إلى الكامنة SSD
  • يجب ألا يقوم نظام الملفات بتنفيذ عمليات الكتابة غير الضرورية على القرص

للحصول على الأداء ، هناك متطلبات أخرى اثنين:

  • يجب أن تتم محاذاة الأقسام مع حجم كتلة SSD
  • يجب تمكين TRIM بشكل صريح لكل قسم من تنسيق Ext4

أول واحد هو في الوقت الحاضر التلقائي مع معظم المثبتات لينكس. سيعمل fdisk أيضًا على إنشاء أقسام عند 1024 كيلوبايت عند بدء تشغيلها مع إشارات "-cu".

والثاني هو التلقائي ل Btrfs ، ولكن بالنسبة ل Ext4 يتم ذلك يدويا من قبل إضافة "تجاهل" إلى قائمة خيارات التحميل لكل قسم Ext4 في ملف "/ etc / fstab". لمزيد من التفاصيل انظر هذا كيف.

في رأيي ، هذا يتطلب القليل تافه مع fstab ل Ext4 لا يوجد سبب لعدم استخدام هذا النظام الناضج والممتاز.


12
2017-08-30 05:59





BTRFS IMO. يحتوي Ubuntu 8.04 والإصدارات الأحدث على إصدارات GRUB التي تدرك GPT. باستخدام GPT و Gdisk ، ستقوم بمحاذاة الأقسام لك. وأعتقد أن FDISK ستفعل ذلك أيضا على الرغم من.

على أي حال ، إليك رابط إلى تثبيت Ubuntu على نظام ملفات BTRFS.

http://www.linuxbsdos.com/2011/05/05/how-to-install-ubuntu-11-04-on-a-btrfs-file-system/

امل ان يساعد.


-2
2017-08-29 20:56