限制「仿 AirPort Time Capsule」的硬碟空間用量

by 10/20/2014 0 意見

在完成了 DIY 的「仿 AirPort Time Capsule」之後,已經可以順便的讓 OS X 自動備份,可是我們的 Linux Server 並不是只有讓 Time Machine 專用,若是沒有進行硬碟空間用量的限制,照 Time Machine 備份的頻率,很快的就有為硬碟廠商促進經濟的機會了 !!!

我們先來看一下 Time Machine 備份的時機。

基本上就是每個小時會備份一次,如果硬碟爆掉的時候,會自動把時間最舊的備份刪除掉,所以備份的頻率非常的高。

在 Linux 裡想要限制硬碟空間的用量,不外乎要使用「磁碟配額 (qouta)」的功能,但是有下面幾點限制要注意:
  1. 無法針對單一目錄進行限制,只能對一整個檔案系統,也就是整個分割區進行限制。
  2. 核心必須支援,在 2.4 版之後才有支援。
  3. 無法對 root 帳號進行限制。
除此之外,要進行 quota 的限制,實作步驟並不是很簡單,完整步驟請參閱 鳥哥的 Linux 私房菜 - 第十五章 - 一個 Quota 實作範例

我們將用幾個簡單的步驟,達成進行備份的時候,最大只能用到 100GB 空間的目標。


開始實作


請先依照 用「仿 AirPort Time Capsule」讓 OS X 執行 Time Machine 來備份,讓 Time Machine 可以正常備份。

這個方法「應該」適用於所有的 Linux 發行版,因為只需要用到內建的指令,不需要額外安裝套件,至少我試過 CentOS 跟 Raspbian 是沒問題的。

首先我們利用 dd 指令讓 /dev/zero 寫入 10 萬次以 1MB 為單位的空字元 (null),合計為 100GB,存到 /backup/time-machine.img 映像檔裡。
dd if=/dev/zero of=/backup/time-machine.img bs=1M count=100000

再用 CentOS 6.5 預設的 ext4 檔案格式,將剛剛產生的映像檔格式化。
mkfs.ext4 /backup/time-machine.img

變更映像檔的權限,讓系統可以正常讀寫。
chown tm-user:tm-user /backup/time-machine.img

再把映像檔掛載起來測試。
mount -o loop /backup/time-machine.img /backup/time-machine

如果忘記格式化,系統會無法辨識檔案系統格式而不能掛載。


自動掛載映像檔


測試 OK 之後,要系統自動掛載映像檔有兩個方法。

第一種方法是讓檔案系統自動掛載,這也是比較推薦的方法。
vi /etc/fstab

在最後一列加入
/backup/time-machine.img  /backup/time-machine  ext4  defaults  0  0

第二種方法是讓系統自動執行 mount 指令。
vi /etc/rc.d/rc.local

在最後一行加入
mount -o loop /backup/time-machine.img /backup/time-machine

這樣子,在重新開機之後就可以限制 Time Machine 最多只能用到 100GB 的硬碟空間了。


調整大小


日後如果 100GB 不敷使用,想要調整大小的話,可以照下列的步驟來做。

先把映像檔卸載下來 。
umount /backup/time-machine

接著執行磁碟修復。
e2fsck -f /backup/time-machine.img

調整到指定大小,這裡示範從 100GB 縮小到 1G,放大也是一樣,把最後一個參數改大就可以了。
resize2fs /backup/time-machine.img 1G

磁碟修復的動作是系統的強制要求,沒有先執行的話,resize2fs 指令會沒有辦法執行。

最後大小調整完成之後,就可以重新掛載,讓 Time Machine 繼續進行備份了。
mount -o loop /backup/time-machine.img /backup/time-machine

其實這樣的作法還多了一個好處,
要轉移或備份 Time Machine 的資料,只要把 time-machine.img 映像檔 copy 起來就可以了,甚至  LAN 的頻寬夠快的話,直接把映像檔放到 NAS 或 SAN 上面也是可以的哦!!!


系列文章


參考資料


更新紀錄

  • 2014/10/20 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

0 意見 :

張貼留言