नव निर्मित एक्सएफएस फाइलसिस्टम में 78 जीबी का उपयोग दिखाया गया है


18

हमारे पास एक 12 टीबी RAID 6 सरणी है जिसे एक XFS फाइल सिस्टम के साथ एकल विभाजन के रूप में स्थापित किया जाना चाहिए । नई फाइल सिस्टम बनाने पर, यह कहता है कि इसमें 78 जीबी उपयोग में है, लेकिन ड्राइव पर कोई फाइल नहीं है।

[root@i00a ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         32G     0   32G   0% /dev
tmpfs            32G     0   32G   0% /dev/shm
tmpfs            32G   11M   32G   1% /run
tmpfs            32G     0   32G   0% /sys/fs/cgroup
/dev/sdb3       154G  3.9G  150G   3% /
/dev/sdb2      1014M  153M  862M  16% /boot
/dev/sdb1       599M  6.7M  593M   2% /boot/efi
/dev/sdc1       187G  1.6G  185G   1% /var
tmpfs           6.3G     0  6.3G   0% /run/user/0
/dev/sda1        11T   78G   11T   1% /export/libvirt

क्या मैंने कुछ गलत किया? क्या यह डिजाइन द्वारा है?

ऐसा लगता है कि फ़ाइल सिस्टम लॉग केवल लगभग 2 जीबी लेता है, और मैं यह पता नहीं लगा सकता कि अंतरिक्ष का उपयोग और क्या हो सकता है।

[root@i00a ~]# xfs_info /export/libvirt/
meta-data=/dev/sda1              isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2929458688, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

विभाजन की जानकारी:

[root@irb00a ~]# parted /dev/sda1
GNU Parted 3.2
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Unknown (unknown)
Disk /dev/sda1: 12.0TB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  12.0TB  12.0TB  xfs

यह चार FC430 कंप्यूट नोड्स और दो FD332 स्टोरेज नोड्स के साथ एक डेल FX2 है, जो Red Hat Enterprise Linux 8 ( Ootpa ) चला रहा है।


क्या यह वास्तव में खाली है? पुन: पेश करने की कोशिश कर रहा है (एक 12TB छवि, डिफ़ॉल्ट mkfs सेटिंग्स के साथ bsize=4096 blocks=2929687500), df -hपरिणाम आपके उदाहरण के अनुसार Size 11T, Used 12Gनहीं है 78Gxfsdump21KB फ़ाइल का उत्पादन करता है ... ;-)
frostschutz

2
आह, मुझे लगता है कि तुम था, reflink=1लेकिन मेरे लिए डिफ़ॉल्ट था reflink=0। इसके साथ reflink=1, यह 78Gमेरे लिए इस्तेमाल किया गया भी कहता है, इसलिए मैं इसे अब पुन: पेश कर सकता हूं।
फ्रॉस्ट्सचुट्ज़

तो ऐसा लगता है कि यह डिज़ाइन द्वारा है, लेकिन अगर आपको यकीन है कि आपके उपयोग के मामले के लिए रिफ्लिंक्स कुछ भी नहीं करेंगे, तो आप इसे बंद करने पर विचार कर सकते हैं।
फ्रॉस्ट्सचुट्ज़

मुझे नहीं पता। यहाँ पर केवल एक चीज वर्चुअल मशीनों के लिए qcow2 फाइलें होंगी।
याकूत

ऐसा लगता है कि कुछ libvirt टूल रिफ़लिंक का समर्थन करते हैं, लेकिन संभावना परेशानी के लायक नहीं है: stackoverflow.com/a/41968000/597234 मैं संभवतः सहेजे गए स्थान में एक संपूर्ण अतिरिक्त VM फिट कर सकता हूं।
याकूत

जवाबों:


2

XFS के लिए, खाली फाइल सिस्टम "साइज यूज्ड" जैसा कि दिखाया गया df -hहै, बहुत कुछ निर्भर करता है, जिस पर मेटाडेटा फीचर आप mkfs.xfsसमय पर सक्षम करते हैं ।

खाली 12TB फ़ाइल के साथ परीक्षण:

# truncate -s 12TB xfstest.img

डिफ़ॉल्ट सेटिंग्स (मेरे वर्तमान ArchLinux सिस्टम पर):

# mkfs.xfs xfstest.img 
meta-data=xfstest.img            isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   12G   11T   1% /dev/shm/loop
# umount loop/

का उपयोग कर reflink=1:

# mkfs.xfs -m reflink=1 -f xfstest.img
meta-data=xfstest.img            isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   78G   11T   1% /dev/shm/loop

का उपयोग करते हुए crc=0, reflink=0: (किसी कारण से, वह भी बदल जाता है finobt=0, sparse=0)

# mkfs.xfs -m reflink=0 -m crc=0 -f xfstest.img 
meta-data=xfstest.img            isize=256    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   33M   11T   1% /dev/shm/loop

संक्षेप में:

# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   78G   11T   1% /dev/shm/loop (reflink=1, crc=1)
/dev/loop0       11T   12G   11T   1% /dev/shm/loop (reflink=0, crc=1)
/dev/loop0       11T   33M   11T   1% /dev/shm/loop (reflink=0, crc=0)

तो एक ताजा 12TB फाइलसिस्टम पर "यूज्ड" स्पेस 78G, 12G या 33M जितना कम है, इस पर निर्भर करता है कि मेटाडेटा फीचर्स जिसे आप mkfs टाइम पर इनेबल करते हैं।


RedHat 8 reflinks=1डिफ़ॉल्ट रूप से है
yakatz

24

सभी filesystems अपने स्वयं के आंतरिक डेटा संरचनाओं के लिए एक उपरि है। इस आंतरिक जानकारी का उपयोग फाइलसिस्टम के लिए भविष्य में फाइल और डायरेक्टरी बनाने के लिए किया जाता है, और जहां सब कुछ आवंटित किया जाता है, उसका ट्रैक रखने के लिए। इस डेटा को सामूहिक रूप से "मेटाडेटा" के रूप में जाना जाता है। यह डेटा के बारे में "फाइल सिस्टम पर डेटा" है। मेटाडेटा को एक ओवरहेड माना जाता है, क्योंकि यह स्थान लेता है, लेकिन उपयोगकर्ता डेटा नहीं है। यह ओवरहेड किसी भी फाइल सिस्टम का उपयोग करने का एक अपरिहार्य पक्ष प्रभाव है।

इस ब्लॉग पोस्ट के अनुसार , XFS के पास कुल डिस्क स्थान का लगभग 0.5% ओवरहेड है। (ध्यान दें कि यह पोस्ट 2009 की है, लेकिन इसका कोई कारण नहीं है कि इसमें बहुत बदलाव होना चाहिए)। उन्होंने एक दर्जन से अधिक विभिन्न फाइल सिस्टमों का उपयोग करके फाइलसिस्टम ओवरहेड का परीक्षण करके वह परिणाम प्राप्त किया guestfish

आपके 12TB स्पेस का 0.5% 60GB है, इसलिए ऐसा लगता है कि यह अपेक्षित उपयोग के बहुत करीब है। मुझे संदेह है कि उनकी संख्या 0.5% से थोड़ी अधिक होनी चाहिए थी, लेकिन यह गोल था।


9
वर्थ नोटिंग कि कुछ फाइलसिस्टम पूर्ण आबंटित आकार की रिपोर्ट करते हैं और फिर इस्तेमाल की गई जगह के खिलाफ बहीखाता पद्धति को चार्ज करते हैं, जबकि अन्य बहीखाता को पूर्ण आकार से घटाते हैं और केवल फाइल स्पेस को "उपयोग" के रूप में रिपोर्ट करते हैं।
क्राइसिस -ऑन स्ट्राइक-

3
फाइलसिस्टम ओवरहेड ... लोगों से पूछते हैं कि उनकी हार्ड ड्राइव की रिपोर्ट क्यों नहीं है कि 1983 से स्टिकर पर क्या है।
जे ...

3
@ जे ... वास्तव में, हार्ड ड्राइव अक्सर बाजार का आकार 1024 एमबी के बजाय 1 जीबी = 1000 एमबी का उपयोग करता है। तो 512GB पर बेचा जाने वाला HD वास्तव में सूचीबद्ध आकार से 12GB छोटा होता है। यह टीबी के साथ और भी बदतर हो जाता है क्योंकि वे 1TB = 1000 GB = 1000 * 1000 MB का उपयोग करते हैं। 1TB HD 1024GB के बजाय वास्तव में एक 976GB है। टीबी से हारे हुए एक व्यक्ति की 48GB।
जस्टिन लेसार्ड

4
गीगाबाइट्स (बेस 10) बनाम गिबिबाइट्स (बेस 2) को मापने का अंतर उपयोग किए गए स्थान के रूप में नहीं दिखता है df
याकूब

1
@JustinLessard आप MiB और KiB स्तरों पर ओवरहेड के बारे में भूल गए। एक 512 जीबी हार्ड ड्राइव वास्तव में एक असली 512 GiB ड्राइव की तुलना में 32 GiB से अधिक छोटी है। और उस पर, एक 1 टीबी ड्राइव वास्तव में 0.909 TiB की तरह है जब TiB, GiB, MiB और KiB ओवरहेड के लिए लेखांकन। (1 * 1000 ^ 4/1024 ^ 4) = 0.90949
पेंगुइन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.