バージョン管理 - Subversion - ダンプしてディスク節約


 クラウディア


1. 概要
2. 考察
3. 実行
4. 復元
5. 参考サイト

1. 概要

 ちょっと古くなって、現時点では、ほとんど使っていないけど、もしかしたら取り出すことがあるかもしれないので、削除するのは躊躇してしまうリポジトリがあります。  これをどうしましょうか?ちゅうお話です。

2. 考察

 リポジトリをダンプしておいて、削除する場合、ディスク容量的にどうなんだろうな?  と「Gemini」伍長に相談してみました。  回答は。
 FreeBSD 15.1 上の Subversion リポジトリを削除し、ダンプファイル(svnadmin dump で作成したもの)のみを保存しておく運用は、ディスク容量を削減(節約)する観点から非常に効果的で合理的です。
 ディスク容量の面におけるメリットや特徴は以下の通りです。

1. ディスク容量的には「大幅に削減できる」
 リポジトリそのものを保持する場合と比べて、ダンプファイルのみにする方が容量は小さくなります。
 データベースのオーバーヘッドが消える
 Subversion のリポジトリの実体(FSFS形式など)は、個別リポジトリごとに膨大な数の小ファイル、インデックス、トランザクション用キャッシュ、フック用のファイル構造などを保持しています。ダンプファイル化することでこれらがすべて削ぎ落とされ、純粋なリビジョンデータとメタデータ(コミットログや属性等)のみの単一ファイルになるため、それだけでサイズが小さくなります。
 圧縮率が極めて高くなる
 ダンプファイルは単一のプレーンテキスト(またはバイナリ差分データ)として出力されるため、gzip や xz、zstd などの圧縮コマンドと非常に相性が良いです。ダンプしたファイルを圧縮しておけば、元のリポジトリサイズの 数分の一から十数分の一 まで圧縮できるケースも珍しくありません。

2. 容量・運用面のメリットと注意点
 メリット
	inodes(iノード)の節約
	特に UFS や ZFS などのファイルシステムにおいて、大量の小ファイル群(リポジトリ内部のファイル群)を削除して単一のダンプファイル(repository.dump.xz など)にまとめることで、ファイルシステム上の iノード消費を大幅に抑えられます。

 バックアップや移行が容易
	単一ファイル化されるため、別のストレージへの待避やクラウドバックアップが格段に行いやすくなります。

 注意点
 即座の閲覧・取り出しはできなくなる
 ダンプファイルはあくまで「復元用のデータ」です。過去のコードを1行だけ確認したい場合でも、一度 svnadmin create で一時リポジトリを作成し、svnadmin load で連動させてからアクセスする必要が生じます。

 ダンプ作成手順の確認
	削除前に正しくダンプが作成されているか(エラー等で途中で途切れていないか)を必ず確認してから元のリポジトリ(/var/svn/repos/... 等)を削除してください。
 ちゅうことです。

3. 実行

 現行のディスクの状態は。

df -cH

Filesystem             Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     328G    229G     99G    70%    /
 てな状況です。  リポジトリとして、およそ。

2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 ちゅうのがありまして。2017 ~ 2021 はダンプしておいて、問題なさそうです。  「2017」を例としてやってみます。  今回は、「xz」で圧縮します。  「root」ユーザ権限で。

svnadmin --quiet dump /path/to/2017 | xz -9 > /path/to/backup/2017.dump.xz

ls -lh /path/to/backup/2017.dump.xz

rm -rf /path/to/2017
 2017 ~ 2021 に適用後、ディスク容量を確認しました。

Filesystem             Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     328G    229G     99G    70%    /
 わはは、ほとんど変わりませんでした。  まぁ、オーバヘッドが減ることと「inodes」の節約にはなっちょるかな。

4. 復元

 ダンプしたものを復元する際は。  「root」ユーザ権限で。

svnadmin create /path/to/2017

xz -dc /path/to/backup/2017.dump.xz | svnadmin --quiet load /path/to/2017

5. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
JETBOY
ハイスピードプラン
earthcar(アースカー)
葬送のフリーレン Prime Video
サウンドハウス
薬屋の独り言
健康サポート特集
それがだいじWi-Fi
U-NEXT
損保との違い
ベルリッツ
Amazonギフトカード
アフィリエイトのアクセストレード
TikTok Shop 【リピート用プログラム】
【usus ウズウズ】
5G CONNECT
ネットオークションの相場、統計、価格比較といえばオークファン
EaseUS