বিভিন্ন আকারের ডিস্ক সহ একাধিক ডিভাইস বিটিআরএফএস ফাইল সিস্টেম


14

আমার একটি বিদ্যমান বিটিআরএফএস ফাইল সিস্টেম রয়েছে যা একটি 500 গিগাবাইট ডিস্কের সমন্বয়ে গঠিত এবং আমি আমার হোম সার্ভারের স্টোরেজ ক্ষমতা বাড়ানোর জন্য একটি 2 টিবি ডিস্ক কিনেছি এবং বিদ্যমান ফাইল সিস্টেমে নতুন ডিস্কটি যুক্ত করতে চাই। আমি যা পড়েছি তা থেকে মনে হচ্ছে যে কোনও বিটিআরএফএস সেটআপ বড় এবং ছোট ডিস্কের মধ্যে আকারের পার্থক্য নষ্ট না করে বিভিন্ন আকারের ডিস্ক পরিচালনা করতে পারে না, তবে আমি বিটিআরএফএসে নতুন এবং আমি সম্ভবত কিছু মিস করেছি, তাই সেটআপ আছে কি? যা আমাকে জায়গাগুলি নষ্ট না করে একটি ফাইল সিস্টেমে দুটি ডিস্ক সংযুক্ত করার অনুমতি দিতে পারে?


আপনি অন্তর্নিহিত ডিস্কগুলি কীভাবে পরিচালনা করছেন? এলভিএম নিয়ে?
অ্যান্ডি স্মিথ

@Andy, হ্যান্ডলগুলি LVM- র / RAID- র শৈলী একাধিক ডিস্ক Btrfs, চেক এই
OneOfOne

উফফফফ ... আমার খারাপ। এর জন্য চিয়ার্স ;-)
অ্যান্ডি স্মিথ

উত্তর:


4

বিটিআরএফগুলি ডেটা এবং মেটাডেটার জন্য বিভিন্ন রাইড স্তর ব্যবহার করতে পারে:

ডিফল্ট (এমনকি একটি ডিস্কের জন্যও) হ'ল মেটাডেটা (ডিরেক্টরি ইত্যাদি) এর জন্য raid1 এবং ডেটার জন্য raid0।

আপনি যদি এটি পরিবর্তন না করেন তবে সম্ভবত দ্বিতীয় ডিস্ক যুক্ত এবং পুনরায় ভারসাম্য চালাতে আপনার কোনও সমস্যা হবে না। কারণ কেবলমাত্র মেটাডেটা উভয় ডিস্কেই অনুলিপি করা হবে (এর সাথে আপনি নিজের মেটাডেটার আকার দেখতে পারবেন btrfs filesystem df /)। কেবল সচেতন হন যে আপনার ডিস্কগুলির মধ্যে কোনওটি যদি আপনাকে আলগা ডেটা ব্যর্থ করে।

কারণ 2 টিবি ডিস্কটি 500 জি এর চেয়ে অনেক বেশি বড়, এটি যদি আপনি নতুনটি যুক্ত করেন এবং পুরনোটিকে সরিয়ে ফেলেন তবে এটি আপনাকে আরও ভাল প্রতিকূলতা দেয় (কোনও নির্দিষ্ট ড্রাইভের ব্যর্থতা কোনও ড্রাইভের প্রতিকূলতার চেয়ে অনেক কম) ব্যর্থ)।

আপনি যদি পরে কোনও রেইড অ্যারে রাখার পরিকল্পনা করেন (আরও অনুরূপ আকারের ড্রাইভ সহ) আপনি নতুন ড্রাইভে ফাইল সিস্টেম আবার নতুন করে তৈরি করতে চান ডেটা এবং মেটাডেটা উভয়ের জন্য এবং তারপরে সমস্ত কিছু অনুলিপি করতে পারেন। তারপরে যখন আপনার আরও বেশি অর্থ হবে তখন দ্বিতীয় 2 টিবি ড্রাইভটি কিনুন।

PS: সিঙ্গল ড্রাইভে রেইড 1 ব্যবহার করার অর্থ ডেটা সেই ড্রাইভের দুটি জায়গায় সংরক্ষণ করা হবে (দুর্নীতি থেকে রক্ষা করতে) এবং আপনার স্টোরেজ স্পেস হ্রাস করবে (মেটাডাটার জন্য এটি সত্যিই একটি ভাল ধারণা)।

পিএসএস: গুরুত্ব সহকারে, মেটাডেটার জন্য রাইড 1 ব্যবহার না করার প্রলোভন করবেন না। পিএসএস: খুব ভাল সম্ভাবনা রয়েছে যে বিটিআরএফএস গতিশীলভাবে রেইডের স্তর পরিবর্তন করার ক্ষমতা অর্জন করবে।


ব্যক্তিগতভাবে আমি আমার বিটিআরএফএস এফএস / অ্যারেগুলি / কী করণ-ই-কল-এটি পুনরায় তৈরি করার পরিকল্পনা করছি যখনই বিটিআরএফএসের রেড 5 এবং রাইড 6 সমর্থন রয়েছে।
আর্থার উলফেল্ট

12

এটি মাল্টি-ডিভাইস বিটিআরএফএস ফাইল সিস্টেমের ডেটা ব্লকগুলির জন্য আপনি কোন প্রোফাইল ব্যবহার করেন তার উপর নির্ভর করে।

  • আপনি যখন RAID0 (ডেটা ব্লকগুলির জন্য ডিফল্ট) ব্যবহার করেন, প্রতিটি ডিস্ক কেবল অ্যারের মধ্যে সবচেয়ে ছোট ডিস্কের সক্ষমতা পূরণ করতে পারে।

  • আপনি যখন ডেটা ব্লকগুলির জন্য "একক" প্রোফাইলটি ব্যবহার করেন, প্রতিটি ডিস্ক সম্পূর্ণ ক্ষমতা পর্যন্ত পূরণ করা হবে। যেমনmkfs.btrfs -d single /dev/sda /dev/sdb

আমার কাছে একটি 2TB এবং 3TB ডিস্ক সহ একটি ফাইল সার্ভার রয়েছে। এটি একটি ইউএসবি ফ্ল্যাশ ড্রাইভ থেকে উবুন্টুকে 12.10 বুট করে। প্রথমে আমি বিটিআরএফএস ফাইল সিস্টেমটি -d singleঅপশন ছাড়াই তৈরি করেছি :

mkfs.btrfs /dev/sda /dev/sdb

ফলাফলটি ছিল যে আমি কেবল 4TB (3.45 বাইনারি টিবি ফাইল ডেটা) সঞ্চয় করতে পারি।

# btrfs fi show
Label: none  uuid: 3a63a407-dd3c-46b6-8902-ede4b2b79465
 Total devices 2 FS bytes used 3.22TB
 devid    2 size 2.73TB used 1.82TB path /dev/sdb
 devid    1 size 1.82TB used 1.82TB path /dev/sda
# btrfs fi df /mnt/btrfs1/
Data, RAID0: total=3.45TB, used=3.22TB
Data: total=8.00MB, used=0.00
System, RAID1: total=8.00MB, used=264.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=94.00GB, used=4.29GB
Metadata: total=8.00MB, used=0.00
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        4.6T  3.3T  241G  94% /mnt/btrfs1

used 1.82TB3TB ড্রাইভের জন্য নোট করুন

তারপরে আমি ডেটা ব্লকগুলি RAID0 থেকে "একক" প্রোফাইলে রূপান্তর করতে "ভারসাম্য" কমান্ডটি ব্যবহার করেছি:

btrfs balance start -dconvert=single /mnt/btrfs1

4 টিবি ডেটা ভারসাম্য বজায় রাখতে খুব দীর্ঘ সময় (প্রায় 30 ঘন্টা) লেগেছিল। তবে এটি শেষ হওয়ার পরে, আমি পূর্ণ 5 টিবি (4.36 বাইনারি টিবি ফাইল ডেটা) ব্যবহার করতে পারি।

# btrfs fi show
Label: none  uuid: 3a63a407-dd3c-46b6-8902-ede4b2b79465
 Total devices 2 FS bytes used 4.34TB
 devid    2 size 2.73TB used 2.73TB path /dev/sdb
 devid    1 size 1.82TB used 1.82TB path /dev/sda
# btrfs fi df /mnt/btrfs1/
Data: total=4.36TB, used=4.34TB
System, RAID1: total=40.00MB, used=500.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=94.00GB, used=4.01GB
Metadata: total=8.00MB, used=0.00
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        4.6T  4.4T   27G 100% /mnt/btrfs1

2

আমি উবুন্টুতে বিটিআরএফএস সহ একাধিক ডিভাইস ব্যবহার করেছি এবং এটি ঠিক কাজ করেছে। মনে রাখবেন যে btrfs আসলে স্ট্যান্ডার্ড RAID স্তরগুলি প্রয়োগ করে না। এটি alচ্ছিক স্ট্রিপিং এবং মিররিং প্রয়োগ করে তবে সত্যিকারের RAID নয়।


1

বিটিআরএস-তে বিভিন্ন আকারের সাথে ড্রাইভগুলি একত্রিত করা সম্ভব।
তবে বর্তমানে বিটিআরএফএস ENOSPC (ডিভাইসে কোনও স্থান বাকি নেই) হ্যান্ডেল করে না।

যেমন আমি একটি RAID0 (স্ট্রাইপযুক্ত) অ্যারেটিতে 3 ড্রাইভ ইনস্টল করেছি। 1x500GB, 1x250GB, 1x160GB।
আপনি ধরে নিবেন যে আপনার 800-900 গিগাবাইটের মধ্যে একটি ডিস্ক স্পেস থাকবে।

এটি যা df -hদেখায়:
/ dev / sdf 848G 615G 234G 73% / মিডিয়া / বিটিআরএফএস

তবে আমি অ্যারেতে আর কোনও ডেটা সঞ্চয় করতে পারছি না। (কোনও স্থান বাকি নেই)

btrfs filesystem df /media/btrfsআমাকে এটি দেখায়:
ডেটা: মোট = 612.51 জিবি, ব্যবহৃত = 612.51 জিবি
মেটাডেটা: মোট = 1.62 জিবি, ব্যবহৃত = 990.73 এমবি
সিস্টেম: মোট = 12.00 এমবি, ব্যবহৃত = 48.00 কেবি

এমনকি পুনরায় ভারসাম্য লাভ করতে পারেনি।

একটি মেলিং তালিকায় আমি এই কলকুলেশনটি দেখেছি: অ্যারেতে
সবচেয়ে ছোট ড্রাইভ * ড্রাইভের সংখ্যা
(যদিও আমার আরও কিছু জায়গা আছে: 160 জিবি * 3 = 480 জিবি এর পরিবর্তে 612 জিবি)

সুতরাং বর্তমানের উন্নয়নের সম্ভাবনাগুলি হ'ল বিটিআরএফএস একটি অ্যারেতে বিভিন্ন আকারের সমর্থন করলেও আপনি আপনার সমস্ত স্থান ব্যবহার করতে পারবেন না।

আমি 2.6.35-22-জেনেরিক কার্নেল দিয়ে উবুন্টু 10.10 ব্যবহার করছি।


আমি মনে করি না যে এটি আপনি যা চান তা সমর্থন করবে, কমপক্ষে যতক্ষণ না এটি প্রতি ফাইল / প্রতি ডিরেক্টরি ভিত্তিতে বিভিন্ন রাইড স্তর সমর্থন করে। RAID0 (স্ট্রাইপ) এর জন্য, বিটিআরএফসকে সমস্ত 3 ডিভাইসে প্রতিটি ফাইলের সমান আকারের অংশ রাখতে হবে। এটি আপনাকে কীভাবে এটি করতে পারে যদি এটি আপনাকে একটি ডিভাইসের সমস্ত 500 জিবি ব্যবহার করতে দেয়? যদি "raid0" এর পরিবর্তে আপনি "একক" ব্যবহার করেন (আপনি পোস্ট করার সময় এই বিকল্পটি উপলব্ধ ছিল না তা নিশ্চিত না), তবে বিটিআরএফস কোথাও ফাইলগুলি নকল করার চেষ্টা করে না এবং আপনাকে সমস্ত ডিভাইসে সমস্ত স্থান ব্যবহার করতে দেয়। তবে অভিযান স্তরগুলির জন্য এটি কোনও অর্থবোধ করে না: আপনি রেড স্তরের সংজ্ঞা লঙ্ঘন করার চেষ্টা করছেন।
ববপল

কিছু মনে নেই, আমি ভুল। বিটিআরএসএফ raid0 / 1 কেবলমাত্র 1 টি অন্যান্য ডিভাইসে স্ট্রিপ / মিরর করে, সমস্ত ডিভাইস নয়, তাই 1TB + 500GB + 500GB ঠিক একইভাবে কাজ করে রেড 0 এবং রেড 1 এর জন্য 1TB + 1TB (কমপক্ষে লিনাক্স 3.0 এর হিসাবে)। লিনাক্স 3.0 এর আগে, এতে আপনার বর্ণিত সমস্যাটি ছিল had
বোবপল

1

আপডেট: লিনাক্স 3.0 প্রকাশের আগে নীচের উত্তরটি লেখা হয়েছিল। লিনাক্স 3.0.০-এ কোয়াশি-রাউন্ড-রবিন প্যাচ অন্তর্ভুক্ত রয়েছে।

আপনি যখন ডেটা মিররিং বা স্ট্রাইপিং করেন, তখন দ্বিতীয় আয়না বা স্ট্রাইপ অংশটি ফাঁকা স্থান সহ অন্য ডিভাইসে বরাদ্দ করা দরকার। বিটিআরএফএস একটি রাউন্ড-রবিন ফ্যাশনে ডিভাইসগুলিকে খণ্ড বরাদ্দ দেয়, যদি আপনার কাছে বিভিন্ন আকারের ডিভাইস থাকে তবে জায়গাটি হারাতে পারে।

এটির উন্নতি করতে পাইপলাইনে একটি আধা-রাউন্ড-রবিন প্যাচ রয়েছে। অবশ্যই, আপনার যদি 500 গিগাবাইট এবং 2 টিবি ডিস্ক থাকে তবে বিভিন্ন ডিভাইসে সমস্ত অংশগুলি জুড়ে দেওয়া অসম্ভব। প্যাচটি আরও 1 x 1TB + 2 x 500 গিগাবাইটের মতো পরিস্থিতিতে তৈরি করা হয় যেখানে প্রতিটি ছোট ডিস্কটি অন্য ছোট ডিস্কের পরিবর্তে বড় ডিস্কের সাথে মিরর / স্ট্রাইপ পছন্দ করে।

আপনার পরিস্থিতিতে, আমি কেবলমাত্র আপনার ডেটা ( mkfs.btrfs -d single) এর জন্য "একক" মোডটি ব্যবহার করব । খণ্ডগুলি সেই মোডে জুটিবদ্ধ নয়, তাই আমি মনে করি বিভিন্ন আকারের ডিভাইসগুলির সাথে কোনও সমস্যা হবে না। যদিও আমি এটি পরীক্ষা করিনি।


0

এই সমস্যাটি কেবল বিটিআরএফএস - রেড 1 সেটআপগুলিতে প্রয়োগ হয়, গটচস পৃষ্ঠা থেকে:

  • বরাদ্দ একটি রাউন্ড রবিন ভিত্তিতে করা হয়। আপনার যদি মেলে না এমন ড্রাইভগুলি (বিভিন্ন আকারের ভলিউম) দিয়ে তৈরি একটি ভলিউমের উপর একটি রেড 1 কৌশল থাকে তবে আপনার একক বৃহত্তম ড্রাইভে প্রচুর জায়গা খালি রেখে আপনার ছোট ভলিউম পূরণ করতে পারে। 'ডিএফ' এবং 'বিটিআরএফএস ফাইল সিস্টেম ডিএফ [মাউন্টপয়েন্ট]' এর মধ্যে কোনও তাত্পর্য থাকলে আপনি এটি যাচাই করতে পারবেন এবং যদি পরবর্তী কমান্ডটিও দেখায় যে "ডাটা" লাইনে "মোট" এবং "ব্যবহৃত" একই রয়েছে । একটি পুনরায় ভারসাম্য এই সমস্যাটি হ্রাস করতে পারে। (2.6.33)
    • যদি আপনার ভলিউমটি এই পদ্ধতিতে পূর্ণ হয় তবে দ্রুত পুনরুদ্ধারের ফলে খুব দ্রুত একটি ENOSPC ("ত্রুটি কোনও ডিভাইসে ছেড়ে দেওয়া উচিত নয়") ওফ হতে পারে। এই অচলাবস্থা সমাধানের জন্য আপনাকে তুলনামূলকভাবে বড় ফাইলটি মুছতে হতে পারে, তবে একটি ভারসাম্য সফল হবে। (2.6.33)
    • পুনরায় ভারসাম্য বর্ধিত সময়ের জন্য প্রম্পট খুব তীব্র সিপিইউ ব্যবহারের কারণ হতে পারে। (২.6.৩৪ এবং ২.6.৩৫)

নিজেকে পুনরাবৃত্তি করতে দুঃখিত, তবে আমি নতুন ডিভাইস যুক্ত করতে চলেছি এবং আমার নিশ্চিত হওয়া দরকার। RAID0 সম্পর্কে যাচাই করা সমস্ত উত্স জানিয়েছে যে ডিস্কগুলি একই আকারের হওয়া দরকার (যেমন ফ্রিবিএস জিওম ডক: "একটি RAID0 স্ট্রিপের প্রতিটি ডিস্ক অবশ্যই একই আকারের হতে হবে, যেহেতু I / O অনুরোধগুলি পড়তে বা লিখতে আন্তঃলিবিযুক্ত থাকে) সমান্তরাল একাধিক ডিস্ক। ")। আপনি কি এটি নিশ্চিত করতে পারেন যে এটি বিটিআরএস এর সাথে কাজ করে?
fokenrute

আমি দুঃখিত, আমার কাছে মাল্টি-ডিভাইস বিটিআরএফ নেই যা আমি নিশ্চিত করতে পারছি না, তবে রাইড0 + বিটিআরএফএসের জন্য একই ডিভাইসের আকার থাকার বিষয়ে আমি কিছুই খুঁজে পাচ্ছি না, তবে আপনার কাছে পর্যাপ্ত সময় থাকলে, নতুন ডিস্কটি বিভক্ত করুন 1tb / 1tb, পুরানো ডিস্কটিকে কোনও একটি পার্টিশনে ব্যাকআপ দিন, খালি 1tb যুক্ত করুন, যদি এটি 2 য় পার্টিশন যুক্ত করে।
OneOfOne
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.