প্রশ্ন ZFS: zpool এ সকল ডিস্কের উপর zvol পুনরায় বিতরণ করবেন?


ZPFS এর সকল ডিস্কে সমস্ত ফাইলের উপর একটি প্রদত্ত ফাইল সিস্টেম পুনরায় বিতরণ করার জন্য কোন উপায় আছে কি?

আমি একটি দৃশ্যকল্প সম্পর্কে চিন্তা করছি যেখানে আমার একটি নির্দিষ্ট আকারের ZFS ভলিউম রয়েছে যা FC এর উপর LUN হিসাবে রপ্তানি করা হয়। বর্তমান zpool ছোট, মাত্র দুটি 1TB মিরর ডিস্ক, এবং zvol মোট 750GB হয়। যদি আমি হঠাৎ জুপলের আকার প্রসারিত করতে বলি, 12 টি টিটিবি ডিস্ক, আমি বিশ্বাস করি যে জাভোলটি কার্যকরভাবে শুধুমাত্র প্রথম দুটি স্পিন্ডগুলিতে 'হাউসড' থাকবে।

আরো spindles = আরো আইওপিএস, আমি কি সব পদ্ধতিতে তাদের সুবিধা নিতে সব 12 spindles উপর zvol 'পুনরায় বিতরণ' করতে কি পদ্ধতি ব্যবহার করতে পারে?


12
2017-12-16 10:04


উত্স




উত্তর:


এটি পুনঃবিবেচনা করার জন্য আপনাকে আপনার ডেটা প্রসারিত Zpool এ পুনর্লিখন করতে হবে। অন্যথায়, সময় পাস করে, আপনার লেখা সমগ্র পুল জুড়ে বিতরণ করা হবে।


8
2017-12-16 10:15



আমি মনে করি না যে এটি করার দ্রুত এবং সহজ উপায় আছে ...? - growse
zfs send | zfs recv - the-wabbit
আমি যে পরীক্ষা যেতে যাচ্ছি - এটা বিশ্বাস করতে পারে তাই কিছু সহজ বিশ্বাস করতে পারেন না। :) - growse
রিপোর্ট ফিরে, আমি এই কাজ না এবং খুব অদ্ভুত। - StrangeWill


শুধুমাত্র প্রাথমিক ডিভাইসে zvol সংরক্ষণ করার কোন কারণ নেই। যদি আপনি পুলটি বড় করেন তবে ZFS সমস্ত উপলব্ধ অন্তর্নিহিত ডিভাইসগুলিতে আপডেট হওয়া তথ্যটি বিস্তৃত করবে। ZFS এর সাথে কোন নির্দিষ্ট বিভাজন নেই।


3
2017-12-16 10:18



আমার অভিজ্ঞতা, এই সত্য নয়। কোনও 'নির্দিষ্ট পারিশ্রমিকিং' নেই তবে, ZFS ক্লায়েন্ট IO অনুরোধগুলির বাইরে তার নিজের ইচ্ছার বাইরে ডেটা স্থানান্তরিত করবে না। যদি আপনি বর্ণিত দৃশ্যকল্পটি তৈরি করেন, আরো ডিস্ক যোগ করুন এবং তারপরে মূল LUN তে কিছু ভারী আইও করি তবে আপনি কেবল অ্যারেতে প্রথম দুটি ডিস্কগুলিতে কার্যকলাপ দেখতে পাবেন, কারণ এটিই সেই ডেটা যেখানে। ehhite নির্দেশ করে যে সময়ের সাথে সাথে এটি সুষম হয়, কিন্তু এটি করার দ্রুত উপায় আছে কিনা তা জানতে আগ্রহী। - growse
আমি অস্পষ্ট ছিল যদি দুঃখিত। অবশ্যই, বিদ্যমান তথ্য যাদুকরীভাবে সরানো হবে না। শুধুমাত্র আপডেট তথ্য সমানভাবে স্থানান্তরিত করা হবে। আমি যে "নতুন আইওএস" বোঝাতে চেয়েছি। যতদূর বিদ্যমান স্ট্যাটিক তথ্য সংশ্লিষ্ট, যতক্ষণ ব্লকগুলি একাধিকবার পড়তে থাকবে ততক্ষণ ক্যাশিং কর্মক্ষমতা উন্নত করবে। - jlliagre


এই হল ehhite এর উত্তর একটি "ধারাবাহিকতা":

আপনি আপনার তথ্য প্রসারিত zpool এ পুনর্লিখন করতে হবে   এটা rebalance

আমি একটি পিএইচপি স্ক্রিপ্ট লিখেছেন (Github পাওয়া যায়) আমার উবুন্টু 14.04 হোস্টে এটি স্বয়ংক্রিয়ভাবে করুন।

এক শুধু পিএইচপি CLI টুল ইনস্টল করতে হবে sudo apt-get install php5-cli এবং প্রথম যুক্তি হিসাবে আপনার পুল তথ্য পাথ পাস, স্ক্রিপ্ট চালান। উদাহরণস্বরূপ

php main.php /path/to/my/files

আদর্শভাবে আপনি পুলের সমস্ত তথ্য জুড়ে স্ক্রিপ্টটিকে দুবার চালাতে হবে। প্রথম চালনা ড্রাইভ ব্যবহারের ভারসাম্য বজায় রাখবে, তবে ব্যক্তিগত ফাইলগুলি শেষ পর্যন্ত যোগ করা ড্রাইভে অতিরিক্তভাবে বরাদ্দ করা হবে। দ্বিতীয় চালটি নিশ্চিত করবে যে প্রতিটি ফাইল ড্রাইভ জুড়ে "মোটামুটি" বিতরণ করা হয়। আমি মোটামুটি পরিবর্তে বলি কারণ আপনি ড্রাইভের ক্ষমতাগুলি মিশ্রিত না করলেও এটি সমানভাবে বিতরণ করা হবে কারণ আমি আমার RAID 10 বিভিন্ন আকারের জোড়াগুলির (4 টিবি আয়না + 3 টিবি আয়না + 3 টিবি আয়না) সাথে আছি।

একটি স্ক্রিপ্ট ব্যবহার করার কারণ

  • আমি "জায়গায়" সমস্যা ঠিক করতে হবে। উদাহরণস্বরূপ আমি অন্য সিস্টেমে তথ্যটি লিখতে পারছি না, এখানে এটিকে মুছে ফেলুন এবং আবার এটি আবার লিখুন।
  • আমি 50% এর বেশি আমার পুলটি ভরাট করেছিলাম, তাই আমি আসল ফাইল মুছে ফেলার আগেই কেবল পুরো ফাইল সিস্টেমটি অনুলিপি করতে পারিনি।
  • ভাল কিছু সঞ্চালনের জন্য কেবলমাত্র কয়েকটি ফাইল থাকলে কেবল সেই ফাইলগুলিতে স্ক্রিপ্টটিকে দুবার চালাতে পারে। তবে, দ্বিতীয় রান শুধুমাত্র কার্যকর প্রথম রান ড্রাইভ ব্যবহার ভারসাম্য অর্জন করতে পরিচালিত।
  • আমার অনেক তথ্য আছে এবং অগ্রগতির একটি ইঙ্গিত দেখতে সক্ষম হতে চাই।

এমনকি ড্রাইভ ব্যবহার অর্জন করা হলে কীভাবে আমি বলতে পারি?

সময়ের সাথে সাথে iostat সরঞ্জামটি ব্যবহার করুন (উদাঃ। iostat -m 5) এবং লিখুন চেক। যদি তারা একই হয় তবে আপনি এমনকি একটি স্প্রেড অর্জন করেছেন। তারা নীচের স্ক্রীনশটে এমনকি পুরোপুরি হয় না কারণ আমি RAID 10 এ 3 টি বিবি ড্রাইভের 2 টি জোড়া দিয়ে 4 টি টিবি চালাচ্ছি, তাই দুইটি 4 এর কিছুটা বেশি লেখা হবে। enter image description here

আপনার ড্রাইভের ব্যবহারটি যদি "অসমর্থিত" হয়, তবে ইয়োস্ট্যাট নীচের স্ক্রিনশটের মত আরো কিছু দেখাবে যেখানে নতুন ড্রাইভগুলি সমানভাবে লেখা হচ্ছে। আপনি এটিও নতুন ড্রাইভ বলতে পারেন কারণ পাঠগুলি 0 এ রয়েছে কারণ তাদের কাছে কোন ডেটা নেই। enter image description here

স্ক্রিপ্টটি নিখুঁত নয়, শুধুমাত্র একটি কার্যকারিতা, কিন্তু এটি আমার জন্য কাজ করে যতক্ষণ না ZFS একদিন বিটিআরএফএসের মত একটি রিবাএলাসিং বৈশিষ্ট্য প্রয়োগ করে।


0
2018-01-02 15:09



ওহ আমার ... বাহ ... - ewwhite


ওয়েল এটি একটি হ্যাকের একটি বিট তবে জাভাস্ক্রিপ্ট ব্যবহার করে আপনি মেশিনটি বন্ধ করে দিয়েছেন তবে আপনি zfs ফাইলটি সিস্টেমটি bar.zvol নামক লোকাল হোস্টে স্থানীয় ফাইলে পাঠাতে পারেন এবং তারপরে আপনি ফাইলটি আবার সিস্টেমটি আবার পান। যে আপনার জন্য তথ্য rebalance উচিত।

zfs send tank/bar > bar.zvol

zfs receive tank/bar < bar.zvol

0
2017-11-24 01:34





আমার সবচেয়ে ভাল সমাধান হল প্রসারিত পুলে আপনার ডেটা অর্ধেক নকল করা এবং তারপর মূল সদৃশ ডেটা মুছতে।


-1
2017-11-23 18:01



তুমি কি বিস্তারিত বলতে পারো? - ewwhite
@reco: zvols ফাইল সিস্টেম নয় তাই আপনি তাদের ডেটা মুছতে বা নকল করতে পারবেন না। আপনি তথ্যটি ওভাররাইট করতে পারেন তবে এটি যদি এটির সাথে একই উপাদানটি না করে তবে এটি দুর্নীতিগ্রস্ত হবে যা অন্তর্নিহিত ভলিউমগুলির ডেটা কার্যকরভাবে কার্যকর করবে, তবে এক বছর আগে এটি ইতিমধ্যেই প্রস্তাবিত। - jlliagre
হ্যাঁ তুমিই ঠিক. আমি চারপাশে খুঁজছেন এবং একই বিষয় গবেষণা ছিল। আমি বুঝতে পেরেছি যে vdevs এর উপর zfs পুনরায় বিতরণ করার তথ্য প্রয়োজন হয় না। কিন্তু আপনি যদি এখনও কোনও তথ্য ডুপ্লিকেট করতে চান এবং মূলত মুছে ফেলতে চান তবে সময়ের সাথে সাথে কী করবে। - reco
Vdevs উপর তথ্য redistributing একটি বৈধ অনুরোধ। আমি এখনও প্রশ্ন করছি যে প্রশ্নটি zvols সম্পর্কে নয়, ফাইল সিস্টেম নয়। আপনি একটি ভলিউমের তথ্য অনুলিপি বা মুছতে পারবেন না, যা জ্ঞান করে না। - jlliagre
হাই jlliagre। হ্যাঁ আপনি ঠিক দুঃখিত - reco