使用 mergefs 增加虛擬儲存

2021-10-23 07:20:49 字數 3107 閱讀 6579

mergefs 用來幹啥,看下圖:

mergerfs 是乙個聯合檔案系統,旨在簡化儲存和管理眾多商業儲存裝置上的檔案。

安裝和配置 mergefs

$ sudo dnf install mergerfs-2.29.0-1.fc31.x86_64.rpm
這是使你更容易理解的例子:

$ df -ht |

grep disk

/dev/sdb1 ext4 23m 386k 21m 2% /disk1

/dev/sdc1 ext4 44m 1.1m 40m 3% /disk2

$ ls -l /disk1/videos/

total 1

-rw-r--r--. 1 curt curt 0 mar 8 17:17 our wedding.mkv

$ ls -l /disk2/videos/

total 2

-rw-r--r--. 1 curt curt 0 mar 8 17:17 baby's first xmas.mkv

-rw-rw-r--. 1 curt curt 0 mar 8 17:21 halloween hijinks.mkv

在此例中掛載了兩塊磁碟,分別為 disk1 和 disk2。兩個驅動器都有乙個包含檔案的 videos 目錄。

現在,我們將使用 mergefs 掛載這些驅動器,使它們看起來像乙個更大的驅動器。

$ sudo mergerfs -o defaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=1m /disk1:/disk2 /media
mergefs 手冊頁非常龐雜,因此我們將說明上面提到的選項。

defaults:除非指定,否則將使用預設設定。

allow_other:允許 sudo 或 root 以外的使用者檢視檔案系統。

use_ino:讓 mergefs 提供檔案/目錄 inode 而不是 libfuse。雖然不是預設值,但建議你啟用它,以便鏈結的檔案共享相同的 inode 值。

category.create=mfs:根據可用空間在驅動器間傳播檔案。

moveonenospc=true:如果啟用,那麼如果寫入失敗,將進行掃瞄以查詢具有最大可用空間的驅動器。

minfreespace=1m:最小使用空間值。

disk1:第一塊硬碟。

disk2:第二塊硬碟。

/media:掛載驅動器的目錄。

看起來是這樣的:

$ df -ht |

grep disk

/dev/sdb1 ext4 23m 386k 21m 2% /disk1

/dev/sdc1 ext4 44m 1.1m 40m 3% /disk2

$ df -ht |

grep media

1:2 fuse.mergerfs 66m 1.4m 60m 3% /media

你可以看到現在 mergefs 掛載顯示的總容量為 66m,這是兩塊硬碟的總容量。

繼續示例:

$ ls -lh "baby's second xmas.mkv"

-rw-rw-r--. 1 curt curt 30m apr 20 08:45 baby's second xmas.mkv

$ cp "baby's second xmas.mkv" /media/videos/

這是最終結果:

$ df -ht |

grep disk

/dev/sdb1 ext4 23m 386k 21m 2% /disk1

/dev/sdc1 ext4 44m 31m 9.8m 76% /disk2

$ df -ht |

grep media

1:2 fuse.mergerfs 66m 31m 30m 51% /media

從磁碟空間利用率中可以看到,因為 disk1 沒有足夠的可用空間,所以 mergefs 自動將檔案複製到 disk2。

這是所有檔案詳情:

$ ls -l /disk1/videos/

total 1

-rw-r--r--. 1 curt curt 0 mar 8 17:17 our wedding.mkv

$ ls -l /disk2/videos/

total 30003

-rw-r--r--. 1 curt curt 0 mar 8 17:17 baby's first xmas.mkv

-rw-rw-r--. 1 curt curt 30720000 apr 20 08:47 baby's second xmas.mkv

-rw-rw-r--. 1 curt curt 0 mar 8 17:21 halloween hijinks.mkv

$ ls -l /media/videos/

total 30004

-rw-r--r--. 1 curt curt 0 mar 8 17:17 baby's first xmas.mkv

-rw-rw-r--. 1 curt curt 30720000 apr 20 08:47 baby's second xmas.mkv

-rw-rw-r--. 1 curt curt 0 mar 8 17:21 halloween hijinks.mkv

-rw-r--r--. 1 curt curt 0 mar 8 17:17 our wedding.mkv

當你將檔案複製到 mergefs 掛載點時,它將始終將檔案複製到有足夠可用空間的硬碟上。如果池中的所有驅動器都沒有足夠的可用空間,那麼你將無法複製它們。

linux 使用檔案增加虛擬記憶體 swap

之前買了個雲伺服器玩,不過是最低配置的1核1g,後來發現這個記憶體太小了,隨便裝幾個軟體就不行了,記憶體消耗較大的像 redis 執行起來很多問題。這些時間了解了下 docker 容器,去嘗試了下發現 mysql 就掛了,而且怎麼樣也啟動不了了,後來發現是記憶體實在是不夠了 後來網上了解,如果伺服器...

Ketama演算法增加虛擬節點對分布式儲存帶來的問題

測試 public class usertest if file.exists filewriter writer new filewriter file.getabsolutepath true writer.write key system.getproperty line.separator ...

apache增加虛擬目錄

用記事本開啟 d xampp apache conf httpd.conf 在最後面加上 alias phpwebsite e phpwebsite allowoverride none options indexes order allow,deny allow from all 即增加了物理目錄...