<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LWN:改變文件系統(tǒng)resize方式!

          共 3876字,需瀏覽 8分鐘

           ·

          2022-05-26 13:05

          關(guān)注了就能看到更多這么棒的文章哦~

          Changing filesystem resize patterns

          By Jake Edge
          May 11, 2022
          LSFMM
          DeepL assisted translation
          https://lwn.net/Articles/894629/

          在 2022 年 Linux 存儲、文件系統(tǒng)、內(nèi)存管理和 BPF 峰會(LSFMM)的文件系統(tǒng)會議上,Ted Ts'o 提出了文件系統(tǒng)經(jīng)常需要調(diào)整 size,以及是否應(yīng)該因此來相應(yīng)地改變文件系統(tǒng)創(chuàng)建時的默認(rèn)參數(shù)。這源于他與 XFS 開發(fā)者 Darrick Wong 的一次談話,Wong 遇到 ext4 里也有人碰到的類似問題。他簡要介紹了這個問題以及它是如何產(chǎn)生的,然后引導(dǎo)大家討論如何解決這個問題。

          Problems

          Linux 文件系統(tǒng)通常被設(shè)計(jì)成支持調(diào)整大小的(resize),但當(dāng)時的規(guī)劃是一開始就是一個相當(dāng)大的文件系統(tǒng),然后定期添加一些大塊空間(big chunks)。文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的大小和創(chuàng)建都是基于正在創(chuàng)建的文件系統(tǒng)的大小。他舉了一個例子,使用 md-raid 的 RAID 陣列來構(gòu)建出一個新磁盤,然后 resize 調(diào)整文件系統(tǒng)大小從而完整地使用這個磁盤。新的磁盤可能是現(xiàn)有文件系統(tǒng) size 中的很大一部分了,但文件系統(tǒng)本身已經(jīng)相當(dāng)大了。

          [Ted Ts'o]

          另一個用例是在一些 NAS(network-attached storage)項(xiàng)目中,它們想創(chuàng)建一個 100MB 的文件系統(tǒng),用 dd 命令來安裝上來,然后對它 resize 進(jìn)行擴(kuò)展,比如擴(kuò)展到 10TB。Ts'o 說,當(dāng)時只有幾個這樣做的項(xiàng)目,所以 Linux 文件系統(tǒng)的開發(fā)者能夠 "猛烈地抨擊他們,盯著他們選擇正確的做法",來創(chuàng)建更大的文件系統(tǒng)來符合預(yù)期 size。但是,目前在云上也出現(xiàn)了類似的普遍需求。

          云服務(wù)供應(yīng)商通常有規(guī)定最小的虛擬塊設(shè)備(virtual block-device)size ,比如說 10GB,然后用這個 size 來創(chuàng)建文件系統(tǒng),接下來會基于這個來調(diào)整 size,比如把 10GB 的文件系統(tǒng)可能被擴(kuò)展到幾十 TB。他說,與 NAS 項(xiàng)目的差異在于,目前有了更多的云計(jì)算供應(yīng)商,而且其中許多法是相當(dāng)天真的。他們使用 mkfs 的默認(rèn)參數(shù),這些參數(shù)是針對 U 盤的,針對這種 size 巨大的文件系統(tǒng)可能會導(dǎo)致出現(xiàn)無法正常工作的情況。

          此外,許多云服務(wù)廠商會根據(jù)正在使用的虛擬塊設(shè)備的 size 來向客戶收費(fèi),這意味著客戶也有充分動機(jī)來等到文件系統(tǒng)快滿時才會 resize 進(jìn)行擴(kuò)大。有一個常見的模式是,一旦一個文件系統(tǒng)已經(jīng)使用了比如說 99%的容量,那么就會再增加 1GB 或 5GB。文件系統(tǒng)中不斷重復(fù)這種做法。"這往往會導(dǎo)致文件系統(tǒng)碎片化達(dá)到最壞情況。" 他說,大多數(shù)文件系統(tǒng)的設(shè)計(jì)并不是為了在幾乎滿負(fù)荷運(yùn)行時也能很好地工作的。

          Possible solutions

          雖然問題已經(jīng)被發(fā)現(xiàn),但尚未有解決方案。他希望聽聽與會者是否有一些好主意。Ts'o 說,有一個做法會很有用,那就是為大型文件系統(tǒng)鏡像文件來制定一種標(biāo)準(zhǔn)格式專用于今后占用全部 block device 空間的情況。ext4 的開發(fā)者一直在嘗試使用 qcow 格式;在 e2fsprogs 中有一個叫做 e2image 的工具可以創(chuàng)建這種映像文件,它們只包含文件系統(tǒng)所實(shí)際使用的 block,所以它們比起所創(chuàng)建的文件系統(tǒng)實(shí)際上小得多。XFS 的開發(fā)者也一直在關(guān)注 xfsdump,它有一些類似的功能,但是是針對 XFS 文件系統(tǒng)的。

          在他和 Wong 討論時,他們都贊同使用單一標(biāo)準(zhǔn)格式(single standard format)會很有用。他說,有一種可能方案就是 qcow,但它沒有很好地規(guī)范定義下來,而且創(chuàng)建 qcow 格式的 QEMU 開發(fā)者不鼓勵將其作為 interchange format 來使用。也許還有其他一些可行方法,但是我們必須要在各種文件系統(tǒng)之間達(dá)成一致。這將有助于擺脫之前那種 "dd 是傳輸文件系統(tǒng)的最先進(jìn)工具" 的觀點(diǎn)。

          另一種可能性就是改變 mkfs,使其 "有時或總是" 創(chuàng)建能夠適合擴(kuò)展到巨大 size 的文件系統(tǒng)。這只需要簡單地改變默認(rèn)值就可以實(shí)現(xiàn),例如,可以哪怕是在 U 盤上也總是創(chuàng)建一個巨大的 journal 日志。Amir Goldstein 說,這樣做效果并不好,因?yàn)檫@些小設(shè)備中的很大一部分空間會被對它們沒有用處的 journal 所消耗。Ts'o 說,這可能不是最佳解決方案,但這是一個可以實(shí)現(xiàn)的方案。

          Ts'o 說,也許 block device 塊設(shè)備可以給 mkfs 一些提示信息,來表明它今后有可能會給這個文件系統(tǒng)未來增加 size 的時候提供空間。這些提示信息可以直接宣布這個設(shè)備根本不能 resize,比如 U 盤這種情況;也可以宣布說它是被安裝在云服務(wù)中的一些虛擬塊設(shè)備里,也就是今后很可能需要擴(kuò)展空間。這樣一來,U盤的默認(rèn)值就可以繼續(xù)保持使用,但相關(guān)參數(shù)就能切換到更適合云計(jì)算的情況??梢詼?zhǔn)備一套基于設(shè)備名字的啟發(fā)式方法,來試圖確認(rèn)它今后是否有可能會增長。如果塊設(shè)備提供了這個提示信息,這就把責(zé)任推給了設(shè)備驅(qū)動程序,但該代碼確實(shí)是有能力知道更多的關(guān)于底層存儲設(shè)備情況的信息的。然而,這些都不是一個完美的解決方案。

          他還指出,提供提示并不能解決那些試圖將存儲成本降到最低的客戶的問題,因?yàn)槊慨?dāng)文件系統(tǒng)填滿時,就會增加少量的存儲空間。他說,這種文件系統(tǒng)的性能會嚴(yán)重下降,以至于客戶為額外計(jì)算能力所支付的費(fèi)用可能比他們節(jié)省的存儲費(fèi)用還要多。據(jù)他所知,除了對客戶進(jìn)行教育外,沒有其他什么解決方案了,而客戶的數(shù)量遠(yuǎn)遠(yuǎn)超過了文件系統(tǒng)開發(fā)者的數(shù)量,所以教育好他們也是不現(xiàn)實(shí)的。

          Goldstein 問,創(chuàng)建可能會擴(kuò)展的文件系統(tǒng)的那些人是否會使用 mkfs 的選項(xiàng)來將產(chǎn)生的文件系統(tǒng)放到一個文件中,這也許可以是個機(jī)會來提醒他應(yīng)該換一組更合適的參數(shù)。Ts'o 說,NAS 的開發(fā)者一直都在詢問這個問題,所以文件系統(tǒng)的開發(fā)者能夠給他們一套參數(shù)并且有效地滿足他們的要求。然而,這對云計(jì)算的情況并不適用,因?yàn)樘摂M塊設(shè)備看起來很像是普通的 SCSI 設(shè)備。使用基于設(shè)備名的啟發(fā)式方法,或者也許是基于一些現(xiàn)在沒有人設(shè)置的 "神奇的 SCSI 屬性" 可能是一種識別云服務(wù)場景的可行方法。

          Josef Bacik 說,blkid 大多數(shù)信息沒有什么用,但其中磁盤的型號名稱也許可以被解析來確定它是否是一個云設(shè)備。他猜測,在一個特定的云服務(wù)之中,云提供商應(yīng)該會統(tǒng)一使用一套名稱。Ts'o 同意這一點(diǎn),并認(rèn)為結(jié)果應(yīng)該 encode 之后也加入 blkid 中,這樣就不必每次都重新分析了。Bacik 認(rèn)為這很有意義,這樣文件系統(tǒng)的開發(fā)者就可以依賴一個跟設(shè)備類型相關(guān)的單一信源了。

          Chris Mason 想知道是否有統(tǒng)計(jì)數(shù)據(jù)表明人們會不會經(jīng)常在云上創(chuàng)建小文件系統(tǒng)并且永遠(yuǎn)保持小文件系統(tǒng)。他擔(dān)心僅僅根據(jù)設(shè)備是否屬于云類型來做決定,會對那些一直使用小型云文件系統(tǒng)的用戶造成損失。Ts'o 說,他沒有這方面的統(tǒng)計(jì)數(shù)據(jù)。他通常聽到的信息是客戶不斷給他們的文件系統(tǒng)添加 1GB 大小的 chunk 進(jìn)來,然后抱怨性能不好。

          Ts'o 說,問題的一部分在于文件系統(tǒng)沒有得到關(guān)于設(shè)備最大 size 的信息;每個云提供商都有自己的最小、最大和增量 size。比如說可以給 mkfs 添加參數(shù)來讓用戶指定最大 size,但大多數(shù)用戶不會知道這些選項(xiàng)。用戶通常使用發(fā)行版安裝程序或默認(rèn)云服務(wù)映像文件,所以沒有機(jī)會讓他們指定這些信息。

          Goldstein 問:是否有可能調(diào)整文件系統(tǒng)的底層部分的 size,比如 journal 的 size,這樣問題就會減少?Ts'o 說,這取決于文件系統(tǒng);ext4 可以調(diào)整其日志的大小,因?yàn)樗试S日志不連續(xù),但他認(rèn)為 XFS 是需要一個連續(xù)的日志空間的。不幸的是,沒有一個 XFS 的開發(fā)者能夠在現(xiàn)場參加 LSFMM,但 Eric Sandeen 利用 Zoom 聊天指出,需要調(diào)整的不僅僅是日志。Mason 還指出,在文件系統(tǒng)中,有很多數(shù)據(jù)結(jié)構(gòu)都需要隨著文件系統(tǒng) size 而改變。

          Bacik 說,房間里的每個人都很清楚,"為用戶創(chuàng)造更多的選擇,只會導(dǎo)致今后有更多的可能性出現(xiàn)問題"。最好的方式就是讓工具默認(rèn)配置為智能的方式。他們可以從 blkid 以及其他地方來收集信息,以做出工具所能做出的最佳選擇。Ts'o 說,工具不會總是做出正確的決定,也許可以為高級用戶增加一些選項(xiàng)。

          大家討論了為了讓文件系統(tǒng)對 size 的增加更有彈性而可以做的一些事情。Ts'o 列舉了 ext4 可以做的幾件事,比如默認(rèn)情況下將 block size 改為 4KB,并自動調(diào)整 journal 的大小;Sandeen 提到,XFS 也許應(yīng)該使有大量分配組(allocation groups)的文件系統(tǒng)變得更有效率,來作為部分解決方案。這些都是針對文件系統(tǒng)的,Ts'o 說他希望能找到方法來更普遍地解決這些問題。然而,會議的時間已經(jīng)用完,暫時還沒有看到真正的解決方案。

          全文完
          LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。

          歡迎分享、轉(zhuǎn)載及基于現(xiàn)有協(xié)議再創(chuàng)作~

          長按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開源社區(qū)的各種新近言論~



          瀏覽 42
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狼友视频入口首页 | 成人黄色在线网站 | 久久8| 日韩黄色电影中文版 | 0930AV电影 |