একটি ZVOL এর জন্য অদ্ভুত ZFS ডিস্ক স্থান ব্যবহারের প্রতিবেদন space


8

আমাদের একটি ফ্রিবিএসডি 10.0-কারেন্ট হোস্টে একটি 100 জি জেডভিএল রয়েছে যা 176G ডিস্ক স্পেস ব্যবহার করার দাবি করে:

root@storage01:~ # zfs get all zroot/DATA/vtest
NAME              PROPERTY              VALUE                  SOURCE
zroot/DATA/vtest  type                  volume                 -
zroot/DATA/vtest  creation              Fri May 24 20:44 2013  -
zroot/DATA/vtest  used                  176G                   -
zroot/DATA/vtest  available             10.4T                  -
zroot/DATA/vtest  referenced            176G                   -
zroot/DATA/vtest  compressratio         1.00x                  -
zroot/DATA/vtest  reservation           none                   default
zroot/DATA/vtest  volsize               100G                   local
zroot/DATA/vtest  volblocksize          8K                     -
zroot/DATA/vtest  checksum              fletcher4              inherited from zroot
zroot/DATA/vtest  compression           off                    default
zroot/DATA/vtest  readonly              off                    default
zroot/DATA/vtest  copies                1                      default
zroot/DATA/vtest  refreservation        none                   local
zroot/DATA/vtest  primarycache          all                    default
zroot/DATA/vtest  secondarycache        all                    default
zroot/DATA/vtest  usedbysnapshots       0                      -
zroot/DATA/vtest  usedbydataset         176G                   -
zroot/DATA/vtest  usedbychildren        0                      -
zroot/DATA/vtest  usedbyrefreservation  0                      -
zroot/DATA/vtest  logbias               latency                default
zroot/DATA/vtest  dedup                 off                    default
zroot/DATA/vtest  mlslabel                                     -
zroot/DATA/vtest  sync                  standard               default
zroot/DATA/vtest  refcompressratio      1.00x                  -
zroot/DATA/vtest  written               176G                   -
zroot/DATA/vtest  logicalused           87.2G                  -
zroot/DATA/vtest  logicalreferenced     87.2G                  -
root@storage01:~ # 

এটি একটি বাগের মতো দেখাচ্ছে, এটিতে volsizeস্ন্যাপশট, সংরক্ষণ এবং শিশু না থাকলে কীভাবে এটি এর চেয়ে বেশি গ্রাস করতে পারে ? নাকি আমরা কিছু মিস করছি?

Upd:

এর ফলাফল zpool status -v:

root@storage01:~ # zpool status -v
  pool: zroot
 state: ONLINE
  scan: scrub repaired 0 in 0h6m with 0 errors on Thu May 30 05:45:11 2013
config:

        NAME           STATE     READ WRITE CKSUM
        zroot          ONLINE       0     0     0
          raidz2-0     ONLINE       0     0     0
            gpt/disk0  ONLINE       0     0     0
            gpt/disk1  ONLINE       0     0     0
            gpt/disk2  ONLINE       0     0     0
            gpt/disk3  ONLINE       0     0     0
            gpt/disk4  ONLINE       0     0     0
            gpt/disk5  ONLINE       0     0     0
        cache
          ada0s2       ONLINE       0     0     0

errors: No known data errors
root@storage01:~ # 

এর ফলাফল zpool list:

root@storage01:~ # zpool list
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
zroot  16.2T   288G  16.0T     1%  1.05x  ONLINE  -
root@storage01:~ # 

এর ফলাফল zfs list:

root@storage01:~ # zfs list
NAME                            USED  AVAIL  REFER  MOUNTPOINT
zroot                           237G  10.4T   288K  /
zroot/DATA                      227G  10.4T   352K  /DATA
zroot/DATA/NFS                  288K  10.4T   288K  /DATA/NFS
zroot/DATA/hv                  10.3G  10.4T   288K  /DATA/hv
zroot/DATA/hv/hv001            10.3G  10.4T   144K  -
zroot/DATA/test                 288K  10.4T   288K  /DATA/test
zroot/DATA/vimage              41.3G  10.4T   288K  /DATA/vimage
zroot/DATA/vimage/vimage_001   41.3G  10.5T  6.47G  -
zroot/DATA/vtest                176G  10.4T   176G  -
zroot/SYS                      9.78G  10.4T   288K  /SYS
zroot/SYS/ROOT                  854M  10.4T   854M  /
zroot/SYS/home                 3.67G  10.4T  3.67G  /home
zroot/SYS/tmp                   352K  10.4T   352K  /tmp
zroot/SYS/usr                  4.78G  10.4T   427M  /usr
zroot/SYS/usr/local             288K  10.4T   288K  /usr/local
zroot/SYS/usr/obj              3.50G  10.4T  3.50G  /usr/obj
zroot/SYS/usr/ports             895K  10.4T   320K  /usr/ports
zroot/SYS/usr/ports/distfiles   288K  10.4T   288K  /usr/ports/distfiles
zroot/SYS/usr/ports/packages    288K  10.4T   288K  /usr/ports/packages
zroot/SYS/usr/src               887M  10.4T   887M  /usr/src
zroot/SYS/var                   511M  10.4T  1.78M  /var
zroot/SYS/var/crash             505M  10.4T   505M  /var/crash
zroot/SYS/var/db               1.71M  10.4T  1.43M  /var/db
zroot/SYS/var/db/pkg            288K  10.4T   288K  /var/db/pkg
zroot/SYS/var/empty             288K  10.4T   288K  /var/empty
zroot/SYS/var/log               647K  10.4T   647K  /var/log
zroot/SYS/var/mail              296K  10.4T   296K  /var/mail
zroot/SYS/var/run               448K  10.4T   448K  /var/run
zroot/SYS/var/tmp               304K  10.4T   304K  /var/tmp
root@storage01:~ # 

আপডেট 2:

আমরা বিভিন্ন প্যারামিটার সহ বেশ কয়েকটি জেডভিএল তৈরি করেছি এবং ddসামগ্রীটি স্থানান্তর করতে ব্যবহার করি । আমরা অন্য একটি অদ্ভুত জিনিস লক্ষ্য করেছি, 16 কে এবং 128 কে জেডভিএলগুলির জন্য ডিস্কের ব্যবহার স্বাভাবিক ছিল volblocksizeএবং এটি 8 কে-এর volblocksizeপরেও একটি জেডভিএল-এর জন্য অস্বাভাবিক থেকে যায় dd(সুতরাং এটি কোনও খণ্ডনের সমস্যা নয়):

root@storage01:~ # zfs get all zroot/DATA/vtest-3
NAME                PROPERTY              VALUE                  SOURCE
zroot/DATA/vtest-3  type                  volume                 -
zroot/DATA/vtest-3  creation              Fri May 31  7:35 2013  -
zroot/DATA/vtest-3  used                  201G                   -
zroot/DATA/vtest-3  available             10.2T                  -
zroot/DATA/vtest-3  referenced            201G                   -
zroot/DATA/vtest-3  compressratio         1.00x                  -
zroot/DATA/vtest-3  reservation           none                   default
zroot/DATA/vtest-3  volsize               100G                   local
zroot/DATA/vtest-3  volblocksize          8K                     -
zroot/DATA/vtest-3  checksum              fletcher4              inherited from zroot
zroot/DATA/vtest-3  compression           off                    default
zroot/DATA/vtest-3  readonly              off                    default
zroot/DATA/vtest-3  copies                1                      default
zroot/DATA/vtest-3  refreservation        103G                   local
zroot/DATA/vtest-3  primarycache          all                    default
zroot/DATA/vtest-3  secondarycache        all                    default
zroot/DATA/vtest-3  usedbysnapshots       0                      -
zroot/DATA/vtest-3  usedbydataset         201G                   -
zroot/DATA/vtest-3  usedbychildren        0                      -
zroot/DATA/vtest-3  usedbyrefreservation  0                      -
zroot/DATA/vtest-3  logbias               latency                default
zroot/DATA/vtest-3  dedup                 off                    default
zroot/DATA/vtest-3  mlslabel                                     -
zroot/DATA/vtest-3  sync                  standard               default
zroot/DATA/vtest-3  refcompressratio      1.00x                  -
zroot/DATA/vtest-3  written               201G                   -
zroot/DATA/vtest-3  logicalused           100G                   -
zroot/DATA/vtest-3  logicalreferenced     100G                   -
root@storage01:~ # 

এবং

root@storage01:~ # zfs get all zroot/DATA/vtest-16
NAME                 PROPERTY              VALUE                  SOURCE
zroot/DATA/vtest-16  type                  volume                 -
zroot/DATA/vtest-16  creation              Fri May 31  8:03 2013  -
zroot/DATA/vtest-16  used                  102G                   -
zroot/DATA/vtest-16  available             10.2T                  -
zroot/DATA/vtest-16  referenced            101G                   -
zroot/DATA/vtest-16  compressratio         1.00x                  -
zroot/DATA/vtest-16  reservation           none                   default
zroot/DATA/vtest-16  volsize               100G                   local
zroot/DATA/vtest-16  volblocksize          16K                    -
zroot/DATA/vtest-16  checksum              fletcher4              inherited from zroot
zroot/DATA/vtest-16  compression           off                    default
zroot/DATA/vtest-16  readonly              off                    default
zroot/DATA/vtest-16  copies                1                      default
zroot/DATA/vtest-16  refreservation        102G                   local
zroot/DATA/vtest-16  primarycache          all                    default
zroot/DATA/vtest-16  secondarycache        all                    default
zroot/DATA/vtest-16  usedbysnapshots       0                      -
zroot/DATA/vtest-16  usedbydataset         101G                   -
zroot/DATA/vtest-16  usedbychildren        0                      -
zroot/DATA/vtest-16  usedbyrefreservation  886M                   -
zroot/DATA/vtest-16  logbias               latency                default
zroot/DATA/vtest-16  dedup                 off                    default
zroot/DATA/vtest-16  mlslabel                                     -
zroot/DATA/vtest-16  sync                  standard               default
zroot/DATA/vtest-16  refcompressratio      1.00x                  -
zroot/DATA/vtest-16  written               101G                   -
zroot/DATA/vtest-16  logicalused           100G                   -
zroot/DATA/vtest-16  logicalreferenced     100G                   -
root@storage01:~ # 

আমরা সন্দেহ করি এটি খণ্ডিত হতে পারে তবে এটি কীভাবে প্রমাণ করা যায় তা আমরা জানি না
অ্যালেক্স

এটি কি স্ন্যাপশটের সাথে সম্পর্কিত হতে পারে?
স্টিভ উইলস

না, এই ভলিউমে আমাদের কোনও স্ন্যাপশট নেই
অ্যালেক্স

আমি যখন জেডএফএস ভলিউম / ফাইল সিস্টেমগুলিতে সংক্ষেপণ অক্ষম দেখি তখন দুঃখ হয়। যাইহোক, আপনি কি পোস্ট করতে পারেন zpool status -vএবং zpool listএবং zfs list?
ew white

1
আমি এতে যা দেখতে পাচ্ছি তার থেকে এটি একটি বাগের মতো দেখাচ্ছে। 100G এর ভলসাইজযুক্ত একটি জেভোলের 'ব্যবহৃত' ব্যবহারটি যদি শিশু বা সংরক্ষণ বা পছন্দ মতো না থাকে তবে 100G এর অতীত হওয়া উচিত নয়। সম্ভবত এটি আসলে একটি 200+ গিগাবাইট ভলসাইজ ছিল এবং আপনি ভলসাইজ প্যারামিটারটি পরিবর্তন করেছেন? যদি তা না হয় তবে ফ্রিবিএসডি -১০.০ এখনও প্রোডাকশন রিলিজ নয়; তাদের সাথে একটি বাগ ফাইল করুন।
Nex7

উত্তর:


2

VOLSIZE ভলিউমের সেই আকারটিকে উপস্থাপন করে কারণ এটি ক্লায়েন্টদের দ্বারা দেখা যাবে, পুলে থাকা ভলিউমের আকার নয়।

এই পার্থক্যটি একাধিক উত্স থেকে আসতে পারে:

  • মেটাডেটার জন্য প্রয়োজনীয় স্থান
  • একাধিক অনুলিপি ("অনুলিপি" পরামিতি) সংরক্ষণের জন্য প্রয়োজনীয় স্থান
  • প্যাডিংয়ের কারণে "নষ্ট স্থান", যখন "ভলব্লকসাইজ" আকারের ব্লকগুলি ভিডিভ কাঠামোর সাথে সারিবদ্ধ করে; ভিদেব কাঠামোর দ্বারা আমি দুটি পরামিতি বলতে চাইছি: রাইডজ-এনে ডিস্কের সংখ্যা এবং ডিভাইসের শারীরিক ব্লকের আকার।

একটি ভলিউম তৈরি করার সময়, zfs তার ক্লায়েন্টদের কাছে "ভলসাইজ" এর একটি ভলিউম উপস্থাপন করতে সক্ষম হওয়ার জন্য এটি কতটা স্থান ব্যবহার করতে হবে তা অনুমান করবে । আপনি ভেস্ট -16 এবং ভেষ্ট -3 ভলিউমগুলিতে এই পার্থক্যটি দেখতে পাচ্ছেন (যেখানে রিফ্রিজারেশনটি 102 গিগাবাইট এবং ভোলসাইজটি 100 গিগাবাইট)। গণনাটি libzfs_dataset.c (zvol_volsize_to_re সংরক্ষণ (uint64_t ভলাইজ, এনভিলিস্ট_ট * প্রপস)) পাওয়া যাবে)

সেই গণনা দ্বারা যা বিবেচনায় নেওয়া হয় না তা হ'ল তৃতীয় উত্স। 512 বাইট সেক্টরযুক্ত ডিস্কের সাহায্যে তৈরি করা ভিডিএভিজে তৃতীয় উত্সটির খুব কম প্রভাব রয়েছে। আমার পরীক্ষা-নিরীক্ষাগুলি থেকে (আমি পরীক্ষা করে দেখেছি যে পুরো জেডভোলটি পূরণ করে এটি পরীক্ষা করে দেখেছি) নতুন 4K সেক্টর ডিস্কের উপরে ভিডিএভি তৈরি করা হলে এটি বেশ কিছুটা পার্থক্য করে।

আমার পরীক্ষা-নিরীক্ষায় আমি আর একটি জিনিস পেয়েছি যে আয়না থাকা গণনা করা রিফ্রিজারেশন এবং কী ব্যবহার শেষ হয় তার মধ্যে পার্থক্য দেখায় না।

ডিফল্ট ভলব্লকসাইজ (8 কে) রয়েছে এমন 4 টি ড্রাইভগুলি ব্যবহার করার সময় এগুলি আমার ফলাফল। প্রথম কলামটি কোনও ভিদেহে ডিস্কের সংখ্যা উপস্থাপন করে:

    raidz1  raidz2
3   135%    101%
4   148%    148%
5   162%    181%
6   162%    203%
7   171%    203%
8   171%    217%
9   181%    232%
10  181%    232%
11  181%    232%
12  181%    232%

512 বাইট সেক্টর ড্রাইভ এবং 8K এর ডিফল্ট ভলব্লকসাইজ ব্যবহার করার সময় এগুলি আমার ফলাফল। প্রথম কলামটি কোনও ভিদেহে ডিস্কের সংখ্যা উপস্থাপন করে:

    raidz1  raidz2
3   101%    101%
4   104%    104%
5   101%    113%
6   105%    101%
7   108%    108%
8   110%    114%
9   101%    118%
10  102%    106%
11  103%    108%
12  104%    110%

আমার সিদ্ধান্তগুলি নিম্নলিখিত:

  • 4K ড্রাইভ ব্যবহার করবেন না
  • আপনার যদি সত্যই এগুলি ব্যবহার করতে হয়, 32 কে এর চেয়ে বেশি বা সমান ভলব্লকসাইজ ব্যবহার করে ভলিউম তৈরি করুন; তুচ্ছ পারফরম্যান্স প্রভাব, এবং উপেক্ষিত স্থান ব্যবহারের ওভারহেড (বৃহত্তর ব্লক আকারের সঠিকভাবে সারিবদ্ধ করার জন্য কম প্যাডিং প্রয়োজন)।
  • আপনার পুলগুলির জন্য আয়নাগুলির স্ট্রাইপগুলি পছন্দ করুন; এই লেআউটের উভয়ই পারফরম্যান্স সুবিধা এবং এর মতো কম স্থান সম্পর্কিত চমক রয়েছে।
  • উপরে বর্ণিত কেসগুলির জন্য অনুমানটি স্পষ্টতই ভুল এবং এটি জেডএফএসে একটি বাগ।

2
এর সাথে একটি পুলে 4 কে ড্রাইভ ব্যবহার করা ashift=9সমস্যার কারণ হিসাবে পরিচিত। এটি নতুন কিছু নয়। ব্লকের আকার পরিবর্তন করাও ড্রাইভগুলি সারিবদ্ধ করে না। সঠিক সমাধানটি দিয়ে পুলটি তৈরি করা ashift=12
ক্রিস এস

ashift=124 কে ড্রাইভে এটি সমাধান করে না; প্রকৃতপক্ষে, ashift=125 পিসি 4K ড্রাইভ এবং একটি রেডজ সহ একটি জপুলে, গ্রাস করা স্থানটি উপরে উল্লিখিতটির নিকটবর্তী, উদাহরণস্বরূপ 7 টি ভলিউম 11 টি গ্রহণ করে।
drookie

-1

আমি যদি এই অধিকারটি পড়ছি, তবে আপনার logicalreferencedকাছে ভলিউমে 87 87..6 গিগাবাইট ডেটা রয়েছে। আপনি যে 170 জিবি নম্বরটি দেখছেন তা হ'ল ডেটাটি কতটা শারীরিক স্থান ব্যবহার করে। তাই আপনি যদি আপনার ড্রাইভ প্রতিফলিত হয়েছে, আমি আশা referenced2x সম্পর্কে করা logicalreferenced


হুম, একই পুলের অন্য একটি এফএস রয়েছে referenced 3.50Gএবং logicalreferenced 3.00Gতাই 2x অনুপাতটি পুলের এফএসের মধ্যে সামঞ্জস্যপূর্ণ নয়।
অ্যালেক্স

এবং উপায়ে পুলটি raidz2, সরল আয়না নয়
অ্যালেক্স

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