এসএসডি, ইरेজ ব্লকের আকার ও এলভিএম: কাঁচা ডিভাইসে পিভি, প্রান্তিককরণ


15

আমি একটি নতুন এসএসডি ইনস্টল করতে এবং সম্পূর্ণ ডিভাইসটিকে পিভি হিসাবে এলভিএমের জন্য ব্যবহার করতে চাই - অন্য কথায়: আমি এই ডিভাইসে একটি ভাগ করারও পরিকল্পনা করি না। সুতরাং মোছা ব্লকে পার্টিশনগুলি সারিবদ্ধ করার প্রয়োজন নেই is

প্রশ্ন (গুলি)

এটি সেট যথেষ্ট --dataalignmentযখন মুছে ফেলুন ব্লক মাপ pvcreateing এবং --physicalextentsizeমুছে ফেলুন ব্লক আকারের একটি একাধিক যখন vgcreateing?

সুতরাং, ধরে নিই যে আমার এসএসডিটির 1024 কে আয়তন মুছে ফেলা হয়েছে, এটি কি ঠিক আছে ok

  • pvcreate --dataalignment 1024k /dev/ssd
  • vgcreate --physicalextentsize $(( x * 1024 ))k ...

আমলে নেওয়ার মতো আর কিছু?

আমি এই ভিজিতে এলভিগুলিতে এক্সট্রোল-ফাইল সিস্টেমগুলি স্থাপন করব বলে ধরে নিচ্ছি, এক্সট4-এক্সটেন্টসগুলি এলভিএম-পিই-আকারের সাথে একত্রিত করা ঠিক হবে, তাই না? সুতরাং ext4-এক্সটেন্টসগুলি একই আকারের বা একাধিক এলভিএম-পিই-আকারের হওয়া উচিত?

কোন স্পষ্টতার জন্য ধন্যবাদ!

উত্তর:


9

হ্যাঁ, আমি এমবিআর / পিবিআর / জিপিটি / এমডি / এলভিএমের সমস্ত অন ডিস্ক লেআউটও পরীক্ষা করে দেখেছি এবং একই সিদ্ধান্তে পৌঁছেছি।

আপনার ক্ষেত্রে (কাঁচা ডিস্কে এলভিএম), যদি এলভিএম-পিই (শারীরিক পরিধি) পিভিক্রিয়েটের সাথে 1MB- প্রান্তিক হয়, আপনি নিশ্চিত হতে পারেন যে সমস্ত পরিমাণে ডেটা বরাদ্দ হবে, যতক্ষণ আপনি বরাদ্দের আকার (1MB * N) রাখবেন ।

যেহেতু "vgcreate -s" এবং "lvcreate -L" উভয়ই মাপবিহীন ইউনিটটিকে এমবি মান হিসাবে ডিফল্টরূপে পরিচালনা করে, আপনি একবার নিজের pvcreate সঠিকভাবে সম্পন্ন করার পরে আপনার সম্ভবত প্রান্তিককরণ সম্পর্কে খুব বেশি যত্নের প্রয়োজন হবে না। % / PEs (lvcreate -l এর জন্য) এবং বি (বাইট) / এস (512 বি - সেক্টর সর্বদা LVM- তে 512 বি) / কে (কেবি) (vgcreate -s এবং lvcreate -L এর জন্য) আকার না দেওয়ার বিষয়টি নিশ্চিত করুন।

=== স্পষ্টকরণের জন্য যুক্ত ===

একটি অনুসরণ হিসাবে, যখন কোনও এসএসডি-তে পুরো ডিভাইস হিসাবে 1024KB মুছা ব্লকের আকার থাকতে পারে, প্রতিটি অভ্যন্তরীণ ফ্ল্যাশ চিপের মুছা ব্লকের আকার / rw পৃষ্ঠার আকার সম্ভবত 32KB-128KB / 512B-8KB।

যদিও এটি প্রতিটি এসএসডি-র নিয়ন্ত্রকের উপর নির্ভর করে, অতিরিক্ত পড়ুন-সংশোধন করুন-লেখার চক্রের কারণে I / O জরিমানা সম্ভবত যতক্ষণ না ঘটে আপনি যতক্ষণ না প্রতিটি লেখার অভ্যন্তরীণ চিপের ব্লক আকার মুছতে আপনার লেখার প্রান্তিককরণ করেন, যা উপরে 32KB-128KB হয় উদাহরণ। কেবলমাত্র আপনি চাইছেন একক লেখার অনুরোধটি যথেষ্ট পরিমাণে বড় হোক (= এসএসডি-এর হিসাবে সম্পূর্ণ-ডিভাইসের ব্লক আকার মুছুন), যাতে আপনি দক্ষতার সাথে সমস্ত অভ্যন্তরীণ চিপস / চ্যানেল চালনা করে আরও ভাল পারফরম্যান্স আশা করতে পারেন।

আমার উপলব্ধি হ'ল 1024 কেবি-প্রান্তিককরণ কেবল একটি সুরক্ষা ব্যবস্থা, কারণ নিয়ামক চিপ ফাংশন একজন বিক্রেতার দ্বারা পরিবর্তিত হয় এবং ফ্ল্যাশ চিপের স্পেস দ্রুত পরিবর্তন হয়। একটি বৃহত বান্ডেলে (1024 কেবি, এক্ষেত্রে) করার জন্য ওএস-স্তরের লেখার অনুরোধ করা আরও গুরুত্বপূর্ণ।

এখন, এই কথাটি বলার পরে, 1MB- সংযুক্ত এলভিএম ব্লকে mkfs (8) করা প্রায়শই ফাইল সিস্টেম-স্তরের ডেটা / মেটাডেটার জন্য 1 এমবি-প্রান্তিককরণটি ভেঙে ফেলবে। বেশিরভাগ ফাইলসিস্টেমগুলি কেবল 4KB- প্রান্তিককরণ করার জন্য যত্নশীল, তাই এটি এসএসডিগুলির পক্ষে সম্ভবত নিখুঁত নয় (তবে, আইআরআইসি, বিটিআরএফএসের মতো সাম্প্রতিক fs অভ্যন্তরীণ সামঞ্জস্যপূর্ণ ব্লক বরাদ্দ করার সময় 64KB + সারিবদ্ধ রাখার চেষ্টা করে)। তবে অনেকগুলি এসআইডি থেকে পারফরম্যান্স পেতে লেখার বান্ডিল করার একটি বৈশিষ্ট্য রয়েছে (যেমন: স্ট্রাইপ-আকারের কনফিগারেশন), যাতে এসএসডি-র নিকট-অনুকূল লেখার অনুরোধটি ব্যবহার করা যায়।

আমি সত্যই আমার ডেটা দিয়ে আমার বক্তব্যটি ব্যাক করতে চাই, তবে আজকের এসএসডি নিয়ামক এত বুদ্ধিমান হওয়ায় প্রমাণ করা সত্যিই কঠিন ছিল এবং উভয় প্রান্তিককরণের আকার এবং লেখার আকার উভয়ই "যথেষ্ট বড়" হয়ে গেলে খুব বেশি পারফরম্যান্সের অবক্ষয় দেখাবে না। এটি নিশ্চিত করুন যে এটি বিন্যস্ত নয় (কোনও মূল্যে <4KB-aligment এড়ান) এবং খুব ছোট নয় (1024 কেবি যথেষ্ট বড়)।

এছাড়াও, আপনি যদি সত্যই আইও জরিমানার বিষয়ে চিন্তা করেন তবে ডিভাইস ক্যাশে অক্ষম করে সিঙ্ক-এড রিড-রাইটিং-রাইরাইট টেস্টের সাহায্যে বেঞ্চমার্কিং করে ডাবল চেক করুন।


6

আমার বোঝার জন্য, ডিফল্টগুলি ইতিমধ্যে যথেষ্ট ভাল। আমি মনে করি না যে আপনার --dataalignment বিকল্পটি নিয়ে চিন্তা করার দরকার আছে কারণ LVM স্বয়ংক্রিয়ভাবে সিএসফের এক্সপোর্ট করা মানগুলির উপর ভিত্তি করে সমস্ত কিছু সারিবদ্ধ করার চেষ্টা করবে, lvm.conf- এ "ডেটা_লাইনমেন্ট_ডিটেকশন" বিকল্পটি দেখুন:

# By default, the start of a PV's data area will be a multiple of
# the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs.
# - minimum_io_size - the smallest request the device can perform
#   w/o incurring a read-modify-write penalty (e.g. MD's chunk size)
# - optimal_io_size - the device's preferred unit of receiving I/O
#   (e.g. MD's stripe width)
# minimum_io_size is used if optimal_io_size is undefined (0).
# If md_chunk_alignment is enabled, that detects the optimal_io_size.
# This setting takes precedence over md_chunk_alignment.
# 1 enables; 0 disables.
data_alignment_detection = 1

তদ্ব্যতীত, ডিগ্রিটি ইতিমধ্যে 4MB হওয়ায় ভিজিক্রিয়েট করার জন্য একটি ফিজিক্যালেক্সটেনসাইজ নির্দিষ্ট করার প্রয়োজন নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.