(102) Raspberry Piを Subversionサーバーにする。【不採用】

投稿者: | 2018年11月5日

1. やりたいこと

1998年から現在まで、
CVS, ClearCase, SourceSafe, Perforce, Subversion, Git
と職場でも家でも構成管理ツールを使い続けている。

2018年11月現在、自宅では Subversion を使っている。
設置場所は、物理 CentOS7 サーバー上の VirtualBox VM(これまた CentOS7)上にインストールしている。

で…
何となく Subversionを 独立した専用の物理サーバ上 に設置したいと思った。
Subversion専用なので、そんなに高性能なマシンでなくてもよい。

候補は以下の三つ。
1) Intel NUC を購入し Linux & Subversionをインストールして使用
2) その他ヤフオクで格安の ベアボーン PC をゲットし Linux & Subversionをインストールして使用
3) 自宅の引き出しに眠っている Raspberry Pi3 Model B に Subversionをインストールして使用

候補1)と2)は、数千円から数万円をかけて新規に物を購入しなければならない。

なので…
まずは家にある物で実現可能な 候補3) をやってみることにした。

 

2. やってみる

(0) Raspberry Piの初期セットアップ

こちらの過去記事 (22) 【1-2】マイコンで電子工作入門:ラズパイ初期設定 を参照のこと。

(1) Raspberry Piに最新ソフトを入れる。

数台あるラズパイの中で、長いこと引き出しの中に眠っていた 1台を使う。

半年以上もネットに繋いでいなかったので update対象のパッケージがたくさん…
apt upgrade で数MBから数十MBのパッケージの更新が続き、更新完了までに数時間を要した。

おそらく microSDへの書き込みアクセス速度が遅いのも大きな理由だと思う。
 → Subversionサーバーとしての速度性能が心配…

sudo apt update
sudo apt upgrade

(2) Raspberry Piに Subversionを入れる。

sudo apt-get install subversion
sudo apt-get install subversion-tools
sudo apt-get install libapache2-mod-svn

libapache2-mod-svn は以前まで libapache2-svn という名前だったようだ。
これを入れないと DAVが使えないので必須のパッケージだ。

(3) HTTPプロトコルで Subversionを制御できるようにする。

1) HTTPサーバー(Apache2)をインストール

sudo apt-get install apache2

sudo systemctl enable apache2
sudo systemctl restart apache2
sudo systemctl status apache2

2) HTTPサーバー(Apache2)の設定

Subversion用の設定ファイルを新規作成する。

sudo vi /etc/apache2/mods-available/dav_svn.conf

以下を記述する。

<Location /svn>
  DAV svn
  SVNParentPath /var/svn/repos
</Location>

Apacheを再起動する。

sudo systemctl restart apache2
sudo systemctl status apache2

(4) 空のリポジトリを作る。

ここでは仮にリポジトリ名を myproj とする。

sudo mkdir -p /var/svn/repos
sudo svnadmin create /var/svn/repos/myproj
sudo chown -R www-data:www-data /var/svn/repos

一先ず Windowsパソコンの WEBブラウザから Raspberry Pi上の Subversionにアクセスできるようになった!

3. 所感

上記の作業の後、既存のリポジトリのダンプファイルをラズパイ上の Subversionにリストアしてみた。
遅い

リストアが遅い。
チェックアウトが遅い。
コミットが遅い。
とにかく遅いが、ガマンできるレベルかも?

予想はしていたが、こんなにも遅いのか…
CPU, メモリ, バス, ストレージのどれを見ても低価格パソコン以下の性能なので当然ではある。
とにかく遅いが、せっかく作ったのだから使いたい・・・

どうしようか?
これを使い続けるか?
やっぱりやめるか?

■ラズパイSVNの長所

・独立した物理サーバーであること。
・手のひらサイズで場所を取らないこと。
・物理的なケーブル接続は電源のみで設置場所に困らないこと。(トイレや玄関、天井にでも設置出来る)
・HDDではないので稼働中の移動に気を遣わないでよいこと。
・消費電力が数Wと小さいこと。

■ラズパイSVNの短所

・処理速度が遅いこと。
・microSDの寿命が心配なこと。定期的なバックアップとメディア交換が必要
・電源コンセントを一口占有すること。
・電源スイッチがないため、電源OFFは外部からコマンドを送る手間がかかること。
・メモリサイズ(1GiB)を超える巨大ファイルをアップロードしようとしたらフリーズした。 ←これはあかんやつや

結果

ラズパイSVNは不採用とする。

処理速度の遅さは他の長所で相殺されると考えていたのだが、これはあかんやつや が完全にアウトだ。
Subversionの DBのバックアップやリストアで巨大ファイルを扱う可能性は十分にある。

いちいちファイルサイズなどを気にして使いたくない。
今は我慢して運用方法を工夫してカバーできても、いずれ耐えられなくなって放棄してしまうだろう。

よって…
ラズパイSVNを作ってはみたものの、実用に耐えられないと判断して不採用とする。
ことにした。

いずれ何か良い策が思いつけば再度チャレンジするかもしれない。

でも、道具は適材適所で使ってこそ生かされるのだ。
ラズパイは、ラズパイに相応しい使い方をすればよいのだ。
SVNサーバーはラズパイに相応しくない使い方だったのだ。 と思う。

候補1),2)をやってみようか?
ラズパイと違ってお金がかかるからどうしよう…

4. 参考情報

ありがとうございます。 m(_ _)m
https://sites.google.com/site/gmitresearch/raspberry-pi/setting-up-svn-on-raspberry-pi


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です