বিটিআরএফএসের ভারসাম্যের অগ্রগতি নিরীক্ষণের কোনও উপায় আছে কি?


13

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

btrfs device delete missing /[mountpoint]খুব দীর্ঘ সময় নিচ্ছে , সুতরাং আমি ধরে নিই যে এটি বাস্তবে প্রতিস্থাপন ড্রাইভে ডেটা পুনরায় ভারসাম্যহীন।

এই ধরনের অপারেশনের অগ্রগতি নিরীক্ষণের কোনও উপায় আছে কি?

অগত্যা আমি দেখতে সুন্দর দেখতে জিইউআই, এমনকি একটি% কাউন্টারও আশা করি না; এবং প্রয়োজনে শেল স্ক্রিপ্টের কয়েকটি লাইন লিখতে আমি ইচ্ছুক, তবে প্রাসঙ্গিক ডেটা সন্ধান করতে কোথা থেকে শুরু করতে হবে তাও আমি জানি না। btrfs filesystem showউদাহরণস্বরূপ কেবল স্তব্ধ, সম্ভবত এটি মিরর করা fs সম্পর্কে কোনও তথ্য প্রদর্শন করার আগে ব্যালেন্স অপারেশনটি শেষ হওয়ার অপেক্ষা করছে।

উত্তর:


25
btrfs balance status /mountpoint

man 8 btrfs

 [filesystem] balance status [-v] <path>
        Show status of running or paused balance.

        Options

        -v   be verbose

4
ধন্যবাদ, দেখা যাচ্ছে যে আমার ক্ষেত্রে বিটিআরএফস বর্তমান অপারেশনকে ভারসাম্য হিসাবে বিবেচনা করে না বলে মনে হয় না, কারণ এটি কিছুই দেয় না, তবে আমি দেখতে পাই একটি "প্রতিস্থাপনের স্থিতি", যা আমি সম্ভবত ব্যবহার করতে পারতাম, আমি যদি প্রতিস্থাপন কমান্ডটি ব্যবহার করতাম । নির্বিশেষে ভাল উত্তর।
ব্যবহারকারী 50849

ভারসাম্য অবস্থা ভালো কিছু হওয়া উচিত: Balance on '/volume1' is running 28 out of about 171 chunks balanced (1156 considered), 84% left। অস্বাভাবিকভাবে, শতাংশ হ্রাস করা হয়।
mwfearnley

7
sudo btrfs fi show

এটি এমন কিছু আউটপুট দেবে:

Label: none  uuid: 2c97e7cd-06d4-4df0-b1bc-651397edf74c
        Total devices 16 FS bytes used 5.36TiB
        devid    1 size 931.51GiB used 770.48GiB path /dev/sdc
        devid    2 size 931.51GiB used 770.48GiB path /dev/sdg
        devid    3 size 931.51GiB used 770.48GiB path /dev/sdj
        devid    4 size 0.00 used 10.02GiB path
        devid    5 size 931.51GiB used 770.48GiB path /dev/sdh
        devid    6 size 931.51GiB used 770.48GiB path /dev/sdi
        devid    7 size 931.51GiB used 770.48GiB path /dev/sdd
        devid    8 size 931.51GiB used 770.48GiB path /dev/sdo
        devid    9 size 465.76GiB used 384.31GiB path /dev/sdn
        devid    10 size 931.51GiB used 770.48GiB path /dev/sdp
        devid    11 size 931.51GiB used 770.48GiB path /dev/sdr
        devid    12 size 931.51GiB used 770.48GiB path /dev/sdm
        devid    13 size 931.51GiB used 769.48GiB path /dev/sdq
        devid    14 size 931.51GiB used 770.48GiB path /dev/sdl
        devid    15 size 931.51GiB used 770.48GiB path /dev/sde
        devid    16 size 3.64TiB used 587.16GiB path /dev/sdf

Btrfs v3.12

এবং যদি আপনি লক্ষ্য করেন যে ডিভাইস আইডি # 4 টি বাকীগুলির থেকে কিছুটা আলাদা দেখাচ্ছে। আপনি যখন "বিটিআরএফএস ডিভাইসটি নিখোঁজ / এমএনটিপয়েন্ট মুছে ফেলেন" তখন এটি "অনুপস্থিত" ড্রাইভটি মুক্ত করার জন্য প্রয়োজনীয় রেইড মেটা / ডেটা পুনরায় তৈরি করা শুরু করবে।

যদি আপনি কিছু মত

"watch -n 10 sudo btrfs fi show"

তারপরে আপনি অপারেশন শেষ না হওয়া অবধি আপত্তিকর "অনুপস্থিত" ডিভাইসে স্থান ক্রমান্বয়ে আরও ছোট এবং ছোট হতে দেখবে এবং এটি ফাই থেকে সরানো হবে।


4

বিটিআরএফএস আপনি যে ড্রাইভে এটি লিখেছেন এটিতে ডেটা লেখার আগে ডেটা পড়া বা পুনর্বিন্যাসের কিছুটা সময় নিতে পারে।

আপনি দেখতে পারেন যে সিপিইউ সময়টি বিটিআরএফএস অপারেশনগুলিতে পুনরায় ভারসাম্য, যোগ, মোছা, রূপান্তর ইত্যাদি সহ উত্সাহিত করছে:

ps -ef | grep btrfs

প্রতিটি ড্রাইভ কতটা ব্যস্ত তা দেখতে, সিস্টেস্ট ইনস্টল করুন এবং চালান:

iostat

মেগাবাইটে আইওস্যাট শো প্রদর্শনের পরিসংখ্যান তৈরি করতে কিছু বিকল্প যুক্ত করুন এবং প্রতি 30 সেকেন্ডে আপডেট করুন:

iostat -m -d 30

স্ক্রাব থেকে নমুনা আউটপুট সুতরাং এই ব্যবধানের সময় কোনও লেখেন না:

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda             700.30       170.10         0.00       6804          0
sdb               0.78         0.00         0.01          0          0
sdc             520.20       127.98         0.00       5119          0
sdd             405.72        92.02         0.00       3680          0
sde             630.05       153.66         0.00       6146          0
sdf             627.43       153.60         0.00       6144          0

ড্রাইভ ক্রিয়াকলাপের historicalতিহাসিক গ্রাফ এবং প্রচুর অন্যান্য তথ্যের জন্য মুনিন ইনস্টল করুন এবং চালান। https://www.digitalocean.com/community/tutorials/how-to-install-the-munin-monitoring-tool-on-ubuntu-14-04


1

আমিও ভাবছিলাম কখন দীর্ঘস্থায়ী মুছা শেষ হবে তাই আমি শেল কোডের এই ছোট্ট টুকরোটি নিয়ে এসেছি:

get_bytes() {
  btrfs device usage --raw /mnt/data | egrep -- '-[0-9]+' | sed -E 's/[^0-9]+([0-9]+)/\1/'
}

prev=$(get_bytes)

while [ 1 ]; do
  current=$(get_bytes)
  diff=$((current-prev))
  if [ "$diff" -gt 0 ]; then
    dd if=/dev/zero iflag=count_bytes count="$diff" 2>/dev/null
  fi
  prev="$current"
  sleep 1
done | pv -petraW -s $(get_bytes) >/dev/null

এটি আপনাকে এটির মতো একটি সুন্দর অগ্রগতি বার দেবে:

0:13:54 [0,00 B/s] [16,0MiB/s] [>                             ]  1% ETA 19:23:19

সাধারণ ধারণাটি pvঅগ্রগতি প্রদর্শনের জন্য ব্যবহার করা হয়। যেহেতু এই কমান্ডটি কেবলমাত্র একটি পাইপ দিয়ে প্রবাহিত বাইটগুলি পর্যবেক্ষণ করতে সক্ষম হয় যা আমরা ddযথাযথ পরিমাণ জিরো তৈরি করতে এবং সেগুলিতে পাইপ ব্যবহার করি pv

এই পদ্ধতির সুবিধাটি হ'ল আপনি একটি দুর্দান্ত অগ্রগতি বার পান। তবে, যেহেতু মনে হয় এটি btrfsসর্বদা এক জিবি ডেটা মুছে ফেলা হয় বাইট আকারে নতুন পার্থক্য পর্যবেক্ষণ না হওয়া পর্যন্ত কিছুটা সময় লাগে।

এই সমস্যাটির সমাধানের জন্য পতাকাটি একটি গড় সংক্রমণ হার প্রদর্শন করার জন্য -aডিফল্ট পতাকাগুলিতে যুক্ত করা হয় pv(যেহেতু সাধারণ বর্তমান সংক্রমণ হারটি বেশিরভাগ সময় 0 হবে)।

আমি বুঝতে পারি এটি সেরা সমাধান নয় তবে আমি যে সেরাটি সামনে আসতে পেরেছি। কারও কাছে উন্নতির জন্য ধারণা থাকলে দয়া করে আমাকে জানান! :)

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