Amazon S3をLinuxファイルシステムにする


Windowsでのオフラインファイル、Linuxでのstub fileについて調査していたら、Amazon S3を使ったストレージの話を見つけた。
本題には関係なかったんだけど、興味深かったのでメモ書き。

s3fs
Linux FUSEを使ったファイルシステム。
1ファイルの最大サイズは64GBまで。
ローカルディスクにキャッシュフォルダを指定できる(use_cache)
Amazon Reduced Redundancy Storage に対応

S3QL
Amazon S3以外にも、Google StorageやOpenStackに対応しているファイルシステム。
Linux, FreeBSD, MacOS Xに対応している。
1ファイルの最大サイズは2TBまで。
内部でPython APSWを利用しているため、別途インストールが必要。

ローカルディスクにキャッシュフォルダを指定できる(–cachedir)
Amazon Reduced Redundancy Storage は非対応

S3QL User’s Guideを見る限り、必要な情報はちゃんと揃っている感じ

Opendedupという重複排除機能搭載のLinux/Windows向けファイルシステム


Opendedupという重複排除機能搭載のファイルシステムを発見した。

ファイルシステム層はCで作られているが、そこより下層の重複排除処理やデータ書き込み処理部分についてはJavaで作られているとのこと。

重複排除以外にも、レプリケーション機能もあるようだ。
(SDFS Volume Replication)

Cloud Based Deduplication Quick Start Guideを見ると、Amazon S3や、Windows Azureのストレージを、Opendedupeで直接利用できるようだ。

Linux環境では、FUSEを使ってマウントする。

Windows環境では、DokanというWindows版FUSEみたいなのを使うが、Opendedup配布パッケージに組み込み済みなので別途インストールする必要はない。
なお、Dokanは「土管」が語源のようです。(Dokanライブラリの説明)

OpenDedup Deduplication NAS ApplianceというOVFテンプレートの仮想マシンも用意されている。

こっちにはSDFS Manager というWeb GUIプログラムが同梱されているようなのだが、スクリーンショットを見る限りでは、かなりちゃんとしている雰囲気が・・・

munin向けのpcsensorプラグインを作った



上海問屋のDNSB-35137など、いくつかの販路で取り扱われているUSB接続の温度計 RDing TEMPerV1.2。

その温度をmuninで計測するためにpluginを作った。

今回考慮が必要だった点
・USB温度計を2つつなぐ
・つなぐUSB BUSが同じであるため、CentOS5上で見分けがつかない
 (TEMPerV1.2ではシリアルを含めデバイス内のパラメータが全部一緒で見分ける方法がない)
・2つの温度計の設置位置は違うので、温度差が5度ぐらいある
・pcsensorコマンド実行時、デバイスがオフラインになることが良くある
 (参考→USB温度計 TEMPerV1.2は計測ミスが多い)

あまり複雑なことをするのも嫌だったので、単純な実装としました。

・温度が2つ取得できるまで、再試行する
・温度が低い方から順にソートして「usbtemper0」「usbtemper1」としていく

また、内部で使うコマンドは、うちで作成した「pcsensor-1.0.2 for TEMPerV1.2 with multi device support」を使います。

USB温度計を1個しか繋がない人は「my $maxdevice=1;」に書き換えてください。

#!/usr/bin/perl -w

my $options="-d";
my $maxdevice=2;

my $arg=$ARGV[0];
if(!$arg){ $arg=""; }

if("$arg" eq "config"){
    print "graph_title USB Temperature Sensor\n";
    print "graph_vtitle Celsius\n";
    print "graph_category sensors\n";
    print "graph_args --base 1000 -l 0\n";
}

my @devlist;
my $count=0;
while($count<$maxdevice){
    open(FILE,"/usr/local/bin/pcsensor $options|");
    while(my $line=<FILE>){
        $line =~ s/\n//ig;

        if($line =~ /Temperature/){
            my @strs=split(/ /,$line);

            my $devnumber=$strs[3] ."-". $strs[5];
            my $value=$strs[8];
            $value=~ s/C//ig;
            #$value=int($value);

            $devlist[$count]=$value;
            $count++;
        }
    }
    close(FILE);
}

my $counttmp=0;
foreach $value (sort @devlist){
    if("$arg" eq "config"){
        print "usbtemper".$counttmp.".label USB temper".$counttmp."\n";
    }else{
        print "usbtemper".$counttmp.".value ".$value."\n";
    }
    $counttmp++;
}

これ、仕掛けて3時間ぐらいしたら、kernel panic起こしやがった・・・

WebminのapsupsdモジュールをRHEL/CentOS6対応にしてみた



RHEL/CentOS 6.4にて、Webminを使って管理をおこなおうとしている。

サーバはapcupsdを使って停電対策をとることにした。
apcupsdの中には、WebでUPSの状態を確認できるようにcgiが添付されている。
これをWebminに組み込めないか確認した。

公式サイトでは「http://download.webmin.com/download/modules/apcupsd-0.81-2.wbm.gz」にそれっぽいものがある。

とりあえず、これを使ってみたところ、以下の問題点があった。

・cgiのパスが、apcupsd-0.81-2.wbm.gzの標準設定では/etc/apcupsd/
・WebminでUPSステータスを見ると、ヘッダが見える形で表示されてしまう。

これをとりあえず解消したものを作成した。

http://blog.osakana.net/sw/apcupsd/apcupsd-mod4.wbm.gz

SoftNASという仮想マシンとして立てるCentOS+ZFSのNAS


2019/01/23追記

2019年1月現在、SoftNAS Essentialsは有償プランの1つとなり、無償で使えるものは「SoftNAS Developer Edition」となった。使用可能容量も250GBまでと大きく制限されている。Amazon AWS, Microsoft Azureのマーケットプレイスにイメージが並んでいるので、そこからデプロイできる他、スタンドアローンのvSphere上にデプロイするためにSoftNAS-4.0.1.ovaが提供されている。

以下は2013年3月記載の古い記述となります。


SoftNASというものがあるらしい。

・CentOS6ベース
・ファイルシステムはZFS
・vSphereやHyper-Vの上に仮想マシンとして動作させる
・Amazon EC2用も用意されている
・検証用にVMware Workstation 8.xもサポート
・割り当てるCPUリソースは2vCPU~8vCPU
・割り当てるメモリリソースは2GB~32GB
・Dedupe機能あり(1TBにつきメインメモリ1GB追加使用)
・Thinprovisionおよび圧縮
・NFS/CIFS/iSCSIを提供できる
・Volumeスナップショット
・レプリケーション機能あり
  → Amazon EC2上に立てたサーバにレプリケーションできる
・ZFS L2ARCを利用したSSD利用の高速化

SoftNAS Essentials」という機能限定版は無償利用可能。
限定の内容の抜粋
・1TBまで
・以下の機能が使えない
 ・SSD利用の高速化
 ・iSCSI機能
 ・レプリケーション
 ・スナップショットのスケジューリング

詳細の違い

まぁ、おもしろそうではあるので、ちょっと試しに使ってみるかな


インストールしてみた

・CentOS 6.3 x86_64
・kernelはCentOS標準を利用している
ZFS on Linux利用
zfs-0.6.0-rc14.x86_64, zfs-modules-dkms,zfs-dracut,zfs-test
・独自Web GUI+Webmin
・NFSやCIFS設定はWebmin画面という感じ
・独自Web GUIは、iconCubeを使って暗号化処理をおこなっている
・独自Web GUIは多言語対応を考慮に入れてないっぽい
・LinuxはGUIログイン
・Chromeインストール&yum repo登録済
・sysctlに特にコレといったパラメータが入れられてない
・/etc/sysconfig/nfsとか/etc/init.d/nfsにも特にパラメータが入ってない
・「Software Updates」は、あくまでSoftNASに関するモジュールのみで、CentOS自体のアップデートは対象外


微妙だなぁ、と感じた、もっとも大きな点は、管理UIの不徹底です。

新規で使う際、以下の順序で操作をおこなっていきます。

1. Webにログイン
main-001
独自のAJAXなUIです。

2. 「Disk Devices」にて空きディスクにパーテーション設定
disk-dev
この画面はWebminそのままです。

3. 「Storage Pools」にてディスクの登録
storagepool
独自のAJAXなUIです。

4. 「Volumes and LUNs」にてボリューム作成
volume
独自のAJAXなUIです。
ここでボリュームを作成すると、マウントされるようになります。

5. 「NFS Exports」にてNFSマウントの設定
nfs-export
この画面はWebminそのままです。
NFSv4対応のwebmin設定画面はPseudofilesystemの関連でちょっとわかりにくいのですが、放置です。

6. 「CIFS Shares」にてCIFS関連設定
cifs-share
この画面もWebminそのままです。
なお、説明書を見ると、CIFS設定は、別途コマンドおよびファイル編集が必要、と書いてあります。

というわけで、使いやすそうな雰囲気がするGUIのわりに、手を抜いてる場所が結構あるせいで、操作感の統一がされておらず、説明も足りてないので、非常に使いにくい感じになっています。

はたして、これは修正されていくのでしょうか・・・???