ডিস্কের দৃশ্যমান আকারের আপগ্রেড করার সময় RAID বাড়ান / পুনরায় আকার দিন


10

আমি মূলত এমন একটি কন্ট্রোলার ব্যবহার করে একটি সফ্টওয়্যার RAID তৈরি করেছি যা প্রতি ডিস্কে কেবল 2TB কে সম্বোধন করতে পারে। ডিস্কগুলি 3 টিবি ডিস্ক হয়। এটি দুর্দান্ত কাজ করেছে, তবে প্রতিটি ডিস্কের প্রথম 2TB ব্যবহার করেছে।

আমি এখন সম্পূর্ণ 3 টিবি দেখতে কন্ট্রোলার পরিবর্তন করেছি। অতএব আমি /dev/md0সর্বশেষ 1 টিবিও ব্যবহার করতে চাই ।

আমি চেষ্টা করেছি:

# mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 has been set to 2147479552K

তবে আপনি দেখতে পাচ্ছেন এটি কেবল 2 টিবি দেখায়। যদি আমি এটি আরও জোর করে চেষ্টা করি:

# mdadm --grow /dev/md0 --size=2147483648
mdadm: Cannot set device size for /dev/md0: No space left on device

সুতরাং কোনওভাবে সিস্টেমগুলি দেখতে পাবে যে ডিস্কগুলি 3TB (ইন /proc/partitions) হয় তবে RAID তাদের 3TB হিসাবে দেখতে পারে না।

এমডিএমডিএম বিবরণ:

# mdadm --detail /dev/md0
/dev/md0:
    Version : 1.2
Creation Time : Fri Mar  2 15:14:46 2012
 Raid Level : raid6
 Array Size : 38654631936 (36863.93 GiB 39582.34 GB)
Used Dev Size : 2147479552 (2048.00 GiB 2199.02 GB)
Raid Devices : 20
Total Devices : 21
Persistence : Superblock is persistent

Update Time : Wed Apr 25 19:47:09 2012
      State : active
Active Devices : 20
Working Devices : 21
Failed Devices : 0
Spare Devices : 1

     Layout : left-symmetric
 Chunk Size : 4096K

       Name : node5:1
       UUID : 8603c3df:b740ba22:8c9c82fd:a18b3133
     Events : 845

Number   Major   Minor   RaidDevice State
  20      65       32        0      active sync   /dev/sds
   1      65       64        1      active sync   /dev/sdu
   2      65       80        2      active sync   /dev/sdv
   3      65       96        3      active sync   /dev/sdw
   4       8      192        4      active sync   /dev/sdm
   5       8       32        5      active sync   /dev/sdc
   6       8       48        6      active sync   /dev/sdd
   7       8       64        7      active sync   /dev/sde
   8       8       80        8      active sync   /dev/sdf
   9       8       96        9      active sync   /dev/sdg
  10       8      112       10      active sync   /dev/sdh
  11       8      128       11      active sync   /dev/sdi
  12       8      144       12      active sync   /dev/sdj
  13       8      160       13      active sync   /dev/sdk
  14       8      176       14      active sync   /dev/sdl
  15       8      208       15      active sync   /dev/sdn
  16       8      224       16      active sync   /dev/sdo
  17       8      240       17      active sync   /dev/sdp
  18      65        0       18      active sync   /dev/sdq
  19      65       16       19      active sync   /dev/sdr

  21      65       48        -      spare   /dev/sdt

ডিস্ক আকার:

# cat /proc/partitions |grep 2930266584
   8       48 2930266584 sdd
   8       32 2930266584 sdc
   8      112 2930266584 sdh
   8       96 2930266584 sdg
   8       80 2930266584 sdf
   8      128 2930266584 sdi
   8      176 2930266584 sdl
   8       64 2930266584 sde
  65       32 2930266584 sds
   8      192 2930266584 sdm
   8      144 2930266584 sdj
  65       80 2930266584 sdv
   8      224 2930266584 sdo
   8      208 2930266584 sdn
   8      160 2930266584 sdk
   8      240 2930266584 sdp
  65        0 2930266584 sdq
  65       64 2930266584 sdu
  65       16 2930266584 sdr
  65       48 2930266584 sdt
  65       96 2930266584 sdw

সম্পাদনা:

# mdadm --version
mdadm - v3.1.4 - 31st August 2010
# uname -a
Linux lemaitre 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux

RAID6 সম্পূর্ণ ডিস্ক ব্যবহার করে (যেমন কোনও পার্টিশন নেই)

আজ সকালে সিস্টেমটি ক্র্যাশ হয়ে গেছে। পুনরায় বুট করার পরে সিস্টেমটি RAID খুঁজে পায় নি (যা ভয়ানক ছিল)। সমস্ত ডিস্ক অতিরিক্ত (এস) হিসাবে প্রদর্শিত হয়েছিল:

cat /proc/mdstat 
Personalities : 
md0 : inactive sdr[20](S) sds[21](S) sdq[18](S) sdp[17](S) sdo[16](S) sdn[15](S) sdl[14](S) sdk[13](S) sdj[12](S) sdi[11](S) sdh[10](S) sdg[9](S) sdf[8](S) sde[7](S) sdd[6](S) sdc[5](S) sdm[4](S) sdv[3](S) sdu[2](S) sdt[1](S)
      42949652460 blocks super 1.2

এমনকি এখানে এটি স্পষ্ট যে mdadm3 টিবি আকার খুঁজে পায়নি।

আমি দৌড়ে গেলাম mdadm --stop /dev/md0। /Etc/m دادm/m دادm.conf এ এন্ট্রি সরানো হয়েছে। রন mdadm -A --scan --force, যার ফলে অনলাইনে অনলাইনে এসে পুনর্নির্মাণ করা হয়েছিল।


আপনি RAID6 এর জন্য 20 টি সম্পূর্ণ ডিস্ক ব্যবহার করছেন - সঠিক? প্রতিটি ডিস্কে কোনও পার্টিশন নেই? কি fdisk -l /dev/sddদেখায়? আপনি কোন ওএস ব্যবহার করছেন, এমডিএডিএম-সংস্করণটি কী?
নীলস

উত্তর:


5

আমি আশেপাশে পোঁদেছি এবং উত্তরের আরও কাছে এসেছি।

# cd /sys/block/md0/md
# cat component_size
2147479552

আমরা এর আগে যা দেখেছি তার সাথে এটি একমত। কিন্তু এই:

# grep . dev-sd*/size
dev-sdc/size:2147482623
dev-sdd/size:2147482623
dev-sde/size:2147482623
dev-sdf/size:2930265560
dev-sdg/size:2147482623
dev-sdh/size:2147482623
dev-sdi/size:2147482623
dev-sdj/size:2147482623
dev-sdk/size:2147482623
dev-sdl/size:2147483648
dev-sdm/size:2147482623
dev-sdn/size:2147482623
dev-sdo/size:2147482623
dev-sdp/size:2147482623
dev-sdq/size:2147482623
dev-sdr/size:2147482623
dev-sds/size:2147482623
dev-sdt/size:2147482623
dev-sdu/size:2147482623
dev-sdv/size:2147482623
dev-sdw/size:2930265560

কেন RAID ভুল আকারটি দেখে তা বোঝায় বলে মনে হচ্ছে: বেশিরভাগ ড্রাইভ 2 টিবি হিসাবে প্রদর্শিত হয় যখন 2 প্রতিস্থাপন করা স্থানগুলি 3 টিবি হিসাবে প্রদর্শিত হয়। সমস্ত ড্রাইভ একই মডেল, সুতরাং আসুন আমরা যদি অনুমিত আকার পরিবর্তন করতে পারি:

# parallel echo 2930265560 \> ::: dev-sd*/size
# grep . dev-sd*/size
dev-sdc/size:2930265560
dev-sdd/size:2930265560
dev-sde/size:2930265560
dev-sdf/size:2930265560
dev-sdg/size:2930265560
dev-sdh/size:2930265560
dev-sdi/size:2930265560
dev-sdj/size:2930265560
dev-sdk/size:2930265560
dev-sdl/size:2930265560
dev-sdm/size:2930265560
dev-sdn/size:2930265560
dev-sdo/size:2930265560
dev-sdp/size:2930265560
dev-sdq/size:2930265560
dev-sdr/size:2930265560
dev-sds/size:2930265560
dev-sdt/size:2930265560
dev-sdu/size:2930265560
dev-sdv/size:2930265560
dev-sdw/size:2930265560

Voila। উপাদান_ আকার এখনও ছোট, যদিও:

# cat component_size
2147479552

সম্ভবত এটি এমডেডএম দ্বারা পরিবর্তন করা যেতে পারে:

# mdadm --grow /dev/md0 --size=max

দুর্ভাগ্যক্রমে এটি লক হয়ে যায় mdadmএবং পরবর্তীকালে / dev / md0 এ অ্যাক্সেস অবরুদ্ধ থাকে। এবং তাই উপাদান_ আকার অ্যাক্সেস হয়:

# cat component_size   # This blocks

Sucks। তবে ভাল অংশটি সিসলগে এটি বলে:

Apr 27 20:45:50 server kernel: [124731.725019] md0: detected capacity change from 39582343102464 to 54010589478912

/ Dev / md0 এ থাকা ফাইল সিস্টেমটি এখনও চলছে।

পুনরায় বুট করার পরে আমাকে আবার 'mddm --grow / dev / md0 --size = সর্বোচ্চ' করতে হয়েছিল। তারপরে resyncসম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন । আবার / dev / md0 এ অ্যাক্সেস ব্লক করা হয়েছে। সুতরাং এখনও অন্য রিবুট, তারপরে xfs_growfs /dev/md0এবং তারপরে পুনরায় আকারটি সম্পূর্ণ হয়েছিল।


আমি সমান্তরাল (1) প্লাগটি পুরোপুরি পছন্দ করেছি, ওলে :) তদন্তের জন্য ধন্যবাদ, ঠিক একইরকম একটি মামলায় আঘাত করুন।
মাইকেল শিগোরিন

1
আমার ধারণা "m دادm --update = ডিভাইসাইজ" এটিও করবে, ম্যান পৃষ্ঠাটি দেখুন: "এটি mddm প্রতিটি ডিভাইসে সর্বাধিক ব্যবহারযোগ্য পরিমাণের স্থান নির্ধারণ করতে এবং মেটাডেটাতে প্রাসঙ্গিক ক্ষেত্রটি আপডেট করবে।"
rudimeier

3

আমি মনে করি সৃষ্টির সময় ডিভাইসের আকারটি মেটাডেটার কোথাও নিবন্ধিত হয়েছিল। কন্ট্রোলার পরিবর্তন করা মেটাডেটা পরিবর্তন করে না।

এমডি থেকে অতিরিক্ত সরিয়ে ফেলুন, তারপরে এটি নতুন ড্রাইভ হিসাবে RAID সেটটিতে পুনরায় যুক্ত করুন। আপনাকে সম্ভবত মেটাডেটা অপসারণ করতে হবে (--zero-super block এর জন্য ম্যান পৃষ্ঠাটি পরীক্ষা করতে হবে বা পুরো ডিস্কটি মুছতে হবে)। যদি এটি একটি একক ডিস্কের জন্য কাজ করে তবে সমস্ত অবশিষ্ট ড্রাইভের জন্যও পদ্ধতিটি পুনরাবৃত্তি করুন। তারপরে অবশেষে --grow করুন।

সিঙ্কটি শেষ না হওয়া পর্যন্ত অতিরিক্ত ডিস্কগুলি সরান না !!


আপনি যদি পরীক্ষা করে থাকেন যে এটি আসলে কাজ করে তবে এটি আমার কাছে অস্পষ্ট। একটি পুনর্নির্মাণের জন্য প্রায় 1.5 দিন সময় লাগে। সমস্ত 20 ড্রাইভ প্রতিস্থাপনের কারণে পুরো এক মাস ধরে চলমান অবনমিত হবে। আপনি যখন "যদি এটি একটি একক ডিস্কের জন্য কাজ করে" লিখেন আপনি কীভাবে পরীক্ষা করবেন যে এটি একক ডিস্কের জন্য কাজ করেছে?
ওলে টাঙ্গ

না আমি এটি পরীক্ষা করে দেখিনি, তবে এর আগে আমি কিছু এমডি সমস্যা দেখেছি এবং এটি কীভাবে কাজ করে সে সম্পর্কে আমার কিছুটা অনুভূতি রয়েছে ... এবং ব্যর্থ হয়। এটি পরীক্ষা করার জন্য আমার কাছে খারাপ মেটাডেটা পড়ে থাকা ড্রাইভ নেই। আমি দীর্ঘ সিঙ্ক সময় সম্পর্কে সচেতন, সে কারণেই আমি অতিরিক্ত ব্যবহার করার পরামর্শ দিই। আপনার কাছে RAID6 রয়েছে যার অর্থ 2 টি ড্রাইভ ব্যর্থ হতে পারে এবং আপনার কাছে অতিরিক্ত। এর অর্থ মোট 3 ড্রাইভ যা আপনার সমস্যা হওয়ার আগে ব্যর্থ হতে পারে। আপনি একটি একক ড্রাইভ দিয়ে পরীক্ষা করতে পারেন, কমপক্ষে আপনি জানেন যে এটি আপনার সমস্যা কিনা। আপনার সেটআপ সম্পর্কে আমার কাছে সীমিত তথ্য আছে। আপনি যদি এটি করতে আরামদায়ক না হন তবে আপনার RAID সেট থেকে ড্রাইভগুলি
টানবেন

ওহ, আমি আপনার প্রশ্ন বুঝতে পারি। m دادm আপনাকে সতর্ক করবে যে আপনি এমন একটি ডিভাইস যুক্ত করার চেষ্টা করছেন যা অন্যগুলির চেয়ে অনেক বড়। এটি কয়েকটি বাইট সম্পর্কে আপত্তি করে না তবে এটি যখন আপনাকে তাত্পর্যপূর্ণ তুলনামূলকভাবে বড় হয় তখন আপনাকে সতর্ক করে দেয়।
জিপ্পি

1
আপনি failএকটি ড্রাইভ করতে পারেন , তারপরে removeএটি, তারপরে zero-superblockএটি মেটাডেটা সরাতে। আপনার RAID সেটটি ব্যবহারে আপনি এটি অতিরিক্ত হিসাবে যুক্ত করতে পারেন, যার অর্থ এটি অন্য কোনও ড্রাইভ ব্যর্থ না হওয়া অবধি এটি সিঙ্ক হবে না (এটি স্বাভাবিক আচরণ) তবে এটি কেবলমাত্র একটি ড্রাইভের জন্য কাজ করে বা আপনি addএটি এবং এটিতে একটি সিঙ্ক প্রয়োজন। আমি জানি এটি চিরকাল লাগে। অথবা আপনি উপলব্ধ যে সমস্ত স্টোরেজ যুক্ত করতে পারবেন না এই সত্য আপনি গ্রহণ। পার্টিশন টেবিল ব্যবহার করার একটি সুবিধা যা আপনি করেননি। পার্টিশন টেবিল ব্যবহার করা খারাপ নয়, তবে এই বিশেষ ক্ষেত্রে আপনাকে সহায়তা করতে পারে।
জিপ্পি

1
উপরের আমার মন্তব্যটি দেখুন: "এমডিএডএম আপনাকে সতর্ক করবে যে আপনি অন্য ডিভাইসের তুলনায় অনেক বড় একটি ডিভাইস যুক্ত করার চেষ্টা করছেন" "
জিপি 5
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.