শারীরিক ক্ষেত্রের আকার 4096 এইচডিডি জন্য লজিক্যাল সেক্টরের আকারের অনুকূলকরণ


20

অনেকগুলি হার্ড ড্রাইভ ডিস্কের সাথে শারীরিক ক্ষেত্রের আকার 4096।

এটি কি প্রচুর পরিমাণে পড়া এবং লেখার গতি বাড়িয়ে দেবে? এটি কোথায় কনফিগার করা যায়?


প্রান্তিককরণ সংক্রান্ত বিষয়ে মন্তব্যগুলির জন্য unix.stackexchange.com/a/18542/1131 দেখুন । সাম্প্রতিক সংস্করণগুলির mkfs.*সর্বোত্তম খাত আকারটি স্বয়ংক্রিয়ভাবে ব্যবহার করা উচিত। আপনি কিছু mkfs.*পরীক্ষা করতে পারেন এবং ফলাফলটি পরিদর্শন করতে পারেন (হয় এমকিএফএসের ভার্বোজ আউটপুটে বা কোনও সম্পর্কিত fs ইউটিলিটি প্রোগ্রামে)।
maxschlepzig

ধন্যবাদ তবে কোনও প্রান্তিককরণের সমস্যা নেই
মতান

উত্তর:


29

512 বাইট সত্যিই ডিফল্ট সেক্টরের আকার নয়। এটি আপনার হার্ডওয়ারের উপর নির্ভর করে।

/sysসিউডো ফাইল সিস্টেমের মাধ্যমে আপনার ডিস্কের প্রতিবেদনগুলিকে আকার বা শারীরিক / লজিক্যাল সেক্টরটি আকার দিতে পারে :

# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512

এই দুটি মানের মধ্যে পার্থক্য কি?

  • physical_block_sizeএকটি ব্লক ড্রাইভ একটি পারমাণবিক অপারেশন লিখতে সক্ষম হয় ন্যূনতম আকার।
  • logical_block_sizeক্ষুদ্রতম আকার ড্রাইভ লিখতে সক্ষম হয় (লিনাক্সের কার্নেল ডকুমেন্টেশন cf.) হয়।

সুতরাং, আপনার যদি 4 কে ড্রাইভ থাকে তবে তা বোঝা যায় যে আপনার স্টোরেজ স্ট্যাক (ফাইল সিস্টেম ইত্যাদি) শারীরিক ক্ষেত্রের আকারের চেয়ে সমান বা বড় কিছু ব্যবহার করে।

এই মানগুলি সাম্প্রতিক সংস্করণগুলিতেও প্রদর্শিত হয় fdisk, উদাহরণস্বরূপ:

# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes

বর্তমান লিনাক্স বিতরণগুলিতে, প্রোগ্রামগুলি (যেটি সর্বোত্তম খাত আকারের বিষয়ে যত্নশীল হওয়া উচিত) mkfs.xfsযেমন ডিফল্টরূপে সর্বোত্তম খাত আকার চয়ন করবে (যেমন 4096 বাইট)।

তবে আপনি উদাহরণস্বরূপ কোনও বিকল্পের মাধ্যমেও এটি স্পষ্টভাবে নির্দিষ্ট করতে পারেন:

# mkfs.xfs -f -s size=4096 /dev/sda

বা:

# mkfs.ext4 -F -b 4096 /dev/sda

যে কোনও ক্ষেত্রে, বেশিরভাগ mkfsরূপগুলি কার্যকর করার সময় ব্যবহৃত ব্লক আকারটি প্রদর্শন করবে।

একটি বিদ্যমান ফাইল সিস্টেমের জন্য ব্লকের আকারটি একটি কমান্ডের সাহায্যে নির্ধারণ করা যেতে পারে:

# xfs_info /mnt
[..]
meta-data=                       sectsz=4096
data     =                       bsize=4096
naming   =version 2              bsize=4096
log      =internal               bsize=4096
         =                       sectsz=4096
realtime =none                   extsz=4096

বা:

# tune2fs -l /dev/sda
Block size:               4096
Fragment size:            4096

বা:

# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size             4
sys_array_size        97
sectorsize            4096
nodesize              16384
leafsize              16384
stripesize            4096
dev_item.sector_size  4096

পার্টিশনে ফাইল সিস্টেম তৈরি করার সময়, অন্য একটি জিনিস যাচাই করা উচিত তা যদি পার্টিশন শুরুর ঠিকানাটি আসলে শারীরিক ব্লকের আকারের সাথে যুক্ত থাকে। উদাহরণস্বরূপ, fdisk -lআউটপুটটি দেখুন, প্রারম্ভিক ঠিকানাগুলি বাইটে রূপান্তর করুন, তাদের শারীরিক ব্লকের আকার দ্বারা ভাগ করুন - পার্টিশনগুলি সারিবদ্ধ থাকলে স্মরণ অনুসারে শূন্য হওয়া উচিত।


ধন্যবাদ, লিনাক্স যৌক্তিক এবং শারীরিক ব্লক আকার হিসাবে কী বর্ণনা করে সে সম্পর্কে আপনার ব্যাখ্যা খুব সহায়ক ছিল। আমি সম্প্রতি এমন পরিস্থিতিতে ছুঁড়েছি যেখানে একই 8 টিবি হার্ড ড্রাইভটি একটি ইউএসবি ঘেরে 512-বাইট ব্লক এবং অন্যটিতে 4K ব্লক হিসাবে যুক্তিযুক্ত এবং শারীরিক হিসাবে প্রদর্শিত হয়েছিল। আমি ভেবেছিলাম কিছু ভুল ছিল কারণ যখন আমি ঘেরগুলি বদলে লিনাক্স পার্টিশন মানচিত্রটি দেখেনি, তবে আমি দেখতে পেলাম যে জিপিটি দ্বিতীয় লজিক্যাল ব্লকে শুরু হয়, সুতরাং এটি নতুন প্রান্তিককরণের জন্য কেবল ভুল জায়গায় ছিল। আমি একটি একক বৃহত বিভাজনটি পুনরায় তৈরি করতে জিডিস্ক ব্যবহার করেছি এবং আমার সমস্ত ডেটা এখনও রয়েছে (4 কে ব্লক সহ এক্সট 4)।
র্যাপ্টর 700

প্রান্তিককরণটি যাচাই করার জন্য আপনি বর্ণিত পদ্ধতিটি কি নির্ভরযোগ্য? আমি "পার্টেড" ইউটিলিটিটি ব্যবহার করেছিলাম এবং এটি রিপোর্ট করেছে যে এইচডিডি পার্টিশনটি প্রান্তিক করা হয়েছে, তবে আপনার সাথে যোগাযোগ করে আমি শারীরিক ব্লকের আকার অনুসন্ধান করেছি, 512 পেয়েছি, তারপরে পার্টিশনের শুরু ঠিকানাটি নিয়েছি fdisk -l, এটি 8 এবং তারপরে 512 দিয়ে বিভক্ত করেছি The
বাকীটি

1
@ ব্যবহারকারী 907860 কেন আপনি 8 দ্বারা ভাগ করবেন? আমার একটি লিনাক্স সিস্টেমে একটি fdisk -lপ্রতিবেদন Units = sectors of 1 * 512 = 512 bytes- সুতরাং 540/4096 লজিকাল / ফিজিকাল ড্রাইভের জন্য 2 পার্টিশন সহ 2048 এবং 1026048 আইটি গণনা করা 2048*512%4096এবং 1026048*512%4096- যেমন একটি পাইথন শেলের মধ্যে। যেহেতু উভয় এক্সপ্রেশন সমান শূন্য those পার্টিশনগুলি 4k সারিবদ্ধ হয়।
ম্যাক্সচলেপজিগ

ব্যাখ্যার জন্য আপনাকে অনেক ধন্যবাদ, আমি লক্ষ্য করি না যে সংখ্যাটি সেক্টর, বিট নয়। আমি কয়েক মাস আগে উত্তরটি আপগ্রেড করেছি, দুঃখের বিষয়, এটি আর আর করতে পারছি না
ব্যবহারকারী 907860

2

না, এটি সম্ভব নয়, এটি থাকলে তাও নয়। আইও সাধারণত কোনওভাবে কমপক্ষে 4096 বাইটের ইউনিটে করা হয় এবং সাধারণত আরও অনেক কিছু।


2
নিশ্চিত নয় যে এই বিবৃতিটি আমার প্রশ্নের সাথে কীভাবে সম্পর্কিত log লজিক্যাল সেক্টরের আকার আইও পাইপলাইনের কিছু অংশে আরও ছোট ছোট অংশগুলি বোঝাতে পারে, এবং এইচডিডি ফার্মওয়্যারের অকারণে ইমুলেশন। পরিষ্কার করার জন্য যত্ন?
মতান

2
@ মাতান, আমি আপনার মন্তব্যটি মোটেই বুঝতে পারি না। আমি বুঝিয়ে দিয়েছি যে আইও একবারে 512 বাইট সঞ্চালিত হয় না, সুতরাং 512 বাইট সেক্টরে ডিস্কটি সম্বোধিত হওয়া কোনও বিষয় নয়। ড্রাইভটি কেবলমাত্র কোনও এমুলেটিং করতে হয় যদি আপনি এমন কোনও লেখার চেষ্টা করেন যা 4k প্রান্তিক না হয় এবং আইও সাধারণত যেহেতু 4k এর বহুগুণে সম্পন্ন হয় এবং আধুনিক বিভাজন সরঞ্জামগুলি নিশ্চিত করে যে 4k সীমানায় পার্টিশনটি শুরু হয়, এটা হবে না।
psusi

1
এই "উত্তর" সম্পূর্ণরূপে ভুল, দাবি এবং এর সিদ্ধান্তে উভয়ই। লজিকাল আকার সেট করা হয় যখন একটি ভলিউম ফর্ম্যাট হয়। যৌক্তিক এবং শারীরিক আকারের মধ্যে মিল নয় এমন ফ্ল্যাশ-ভিত্তিক স্টোরেজ হিসাবে প্রযুক্তিগুলিতে একটি নির্দিষ্ট খরচ হয়।
ক্রিস স্ট্রাটন

@ ক্রিসট্রেটটন, না, আপনি ফাইল সিস্টেম ব্লক / ক্লাস্টার আকারের কথা ভাবছেন। লজিকাল সেক্টরের আকার হ'ল একটি সেক্টরের আকার যা ড্রাইভ ওএসকে প্রতিবেদন করে এবং এটি কেবল সেই আকারের ইউনিটগুলি বা সেগুলির একাধিক একক পড়তে এবং লিখতে পারে এবং ক্ষেত্রগুলি সেই আকারের ইউনিটগুলিতে সংখ্যাযুক্ত। শারীরিক সেক্টরের আকারের সাথে তুলনা করুন, যেখানে কিছু ড্রাইভ প্রকৃতপক্ষে অভ্যন্তরীণভাবে 4k সেক্টর পড়তে এবং লিখতে পারে তবে তারা ভান করে যে তারা 5k বাইট সেক্টরগুলি পুরানো অপারেটিং সিস্টেমগুলির সাথে পশ্চাদপটে সামঞ্জস্যের জন্য ব্যবহার করছে যা 4k যৌক্তিক খাত নিয়ে কাজ করতে পারে না।
psusi

ত্রুটিপূর্ণ. স্টোরেজ সিস্টেমের শারীরিক আকারের চেয়ে ছোট ইউনিটে পরিচালনা করার চেষ্টা করার সময় আপনার সফ্টওয়্যার থাকা অবস্থায় সমস্যাটি উপস্থিত রয়েছে। এটি ফ্ল্যাশ মুছার ব্লক আকারের চেয়ে ছোট লজিক ইউনিটগুলির সাথে বিশেষভাবে সত্য - সফ্টওয়্যারটি অপরিবর্তিত অংশগুলিকে একটি নতুন শারীরিক ব্লকে নকল করতে শুরু করে এবং অপারেটিং সিস্টেমের ফাইল সিস্টেম কোড বা কোড দ্বারা সম্পন্ন না করে নির্বিশেষে জীবনটি মুছে ফেলতে পারে costs অভ্যন্তরীণ ড্রাইভ
ক্রিস স্ট্রাটন

1

হ্যাঁ এটি সম্ভব, তবে এটি করার ফলে ড্রাইভটি যত দ্রুত হওয়া উচিত তা পূরণ করতে পারে। 512 কে-এরও কম ফাইলের জন্য, প্রতিটি ফাইলের পরে পুরো 4096 কে (4 এমবি) নেওয়া হয় এবং বেশিরভাগ ফাইল সিস্টেমের (এনটিএফএস এবং এর মতো) ফাইলগুলি সেক্টর ভাগ করে নিতে দেয়ায় অক্ষমতার কারণে বাকী খাতটি 0 এর সাথে পূরণ করে। ফাইল সিস্টেমের জন্য সর্বোত্তম বিকল্পটি হ'ল ভেরিয়েবল সেক্টর মাপের মঞ্জুরি দেওয়া, তবে এটি এমএফটি (মাস্টার ফাইল টেবিল) এর আকার বৃদ্ধি করে এবং সহজেই ডেটা পুনরুদ্ধারের ক্ষমতা হ্রাস করার সাথে সাথে ডেটা দুর্নীতির ঝুঁকি বাড়ায়। অন্য কথায়, সীমানা পুনরুদ্ধার সফ্টওয়্যার দ্বারা পুরোপুরি জানা যাবে না। সুতরাং, যখন একটি 4096 কে লজিক্যাল সেক্টরের আকার বড় ফাইলগুলির জন্য দুর্দান্ত হয়, সাধারণ প্রতিদিনের ব্যবহারের জন্য পিসি এটি কেবল 0 এর একগুচ্ছ। এখন, এই বলে, লজিক্যাল সেক্টরের আকারের চেয়ে ছোট ডেটা এলে এমএফটি নিজেই ডেটা সংরক্ষণ করার বিকল্প থাকে। তবে এটির অর্থ হ'ল আপনার এমএফটি বিশাল আকার ধারণ করে এবং ডেটা দু'বার লেখা হবে (আপনার এইচডিডি তে এমএফটি দুটি কপি রয়েছে)। আপনাকে এমএফটি সর্বাধিক আকার নির্দিষ্ট করতে হবে যা সমস্যার সর্বাধিক আকারে পৌঁছতে পারে যখন আপনি যখন তার সর্বোচ্চটি পৌঁছে যান বা ড্রাইভের ব্যবহার এমএফটি ব্যবহারের জন্য বিনামূল্যে কী পরিমাণ ছাড়িয়ে যায়। এগুলি সমস্ত একটি এনটিএফএস ফাইল সিস্টেমের ব্যবহারের উপর ভিত্তি করে। বিষয়গুলির আরও উজ্জ্বল দিকে, এনটিএফএস আপনাকে 4MB বা তার চেয়ে কম লজিক্যাল সেক্টরের আকারের জন্য ব্লক স্তরে ফাইলগুলির জন্য দেশীয় সংক্ষেপণ ব্যবহার করতে দেয়। এই সীমাবদ্ধতাটি এনটিএফএস সংক্ষেপণের যেভাবে কাজ করে তার কারণে প্রয়োগ করা হয়। 4 এমবি ব্লকগুলি যৌক্তিক খাতের আকার নির্বিশেষে পঠিত এবং সংকুচিত হয়। এটি অবশ্যই

সুতরাং, এই পরিষ্কার জিনিসগুলি আপনার জন্য কিছুটা আপ?


আমি মনে করি এই উত্তরটি এনটিএফএসকে উদাহরণস্বরূপ ফাইল সিস্টেম হিসাবে ব্যবহার না করা হলে এটি আরও ভাল হবে কারণ (বিগত কয়েক বছরে জিনিসগুলি পরিবর্তিত না হলে) এটি ভালভাবে বা ইউনিক্স এবং বন্ধুদের অধীনে সমর্থিত নয়
ফক্স

কে মানে কিলো যা এক মেট্রিক ইউনিট প্রিফিক্স যার অর্থ এক হাজার। 4 এমআইবি 1024 সেক্টর এবং আপনার পরামর্শ অনুসারে 1 নয়। 4096 বাইট 4 কিবি বা 0,00390625 মাইবি।
আয়েয়ুন

এটি কোনও উত্তর নয়। ওডি এইচডিডি সেক্টর আকার সম্পর্কে বলছে, ফাইল সিস্টেমের আকারের আকার নয়। এটা আলাদা স্তর।
0 薯条 德里克

-1
Sector:

1) Logical Sector: Called Native Sector.

Manufacture default setting. user cannot change.

Before 2010 year: 512b/sector

After 2010 year: 4k/sector.

Few manufacture provide HDD tool to change native sector.

2) Physical Sector: Called Cluster(or allocation unit - FAT windows) or Block(Linux/Unix)

User can change physical sector size 512b,1k,2k,4k,... by format or partition tool. Physical sector contains one or few more native sectors.

(example1: if you have HDD 512b/native sector: user can set 4K/Physical sector. this mean 1 cluster = 4 native sector)

(example2: if you have HDD 4K/native sector: user can set 4K/Physical sector. this mead 1 cluster = 1 native sector)

3) File system deal with Physical sector(or block or Cluster) only.

আপনি এই উদ্ধৃতিটির উত্স লিখতে মিস করেছেন। অন্যদিকে, আমি মনে করি এটি এখানে আপনার আগের মন্তব্যের একটি অনুলিপি: superuser.com/a/1372494/141252
andras.tim
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.