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向けファイルシステム

2024/04/23追記

2024年4月現在、Opendedupのサイト自体は存続している。

githubでの開発状況を見ると2022年8月の修正が最後で、またまとめた形でのリリースは2016年8月のver 3.2.1が最後となっているようだが、メインサイトの”Changes“には「ver 3.5.7」、”Download“では「The most current version is 3.10.8.0」という記述があるので、開発は続いている模様。

とはいえ、サイト上の対応OS記述がUbuntu 14.04やWindows Server 2012だったりするあたりでちょっと怪しい・・・


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

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

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

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

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

Windows環境では、Dokan(以前は http://dokan-dev.net/ だったが2021年時点では消滅)というWindows版FUSEみたいなのを使うが、Opendedup配布パッケージに組み込み済みなので別途インストールする必要はない。
なお、Dokanは「土管」が語源のようです。(Dokanライブラリの説明 http://dokan-dev.net/about/ )

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起こしやがった・・・

Firefox OSがSpereadtrum SC8810対応に?

Firefox OSのソースコードにPEAK対応が追加されたよ。というので見てみたら、Spereadtrumチップに対応しているのを発見。

B2G/config.shによれば「tara」というコードネームのマシンが「sp8810ea」と定義されてた。

いつ追加されたのかなぁ?と調べてみると2013/04/04「Add tara device support」だった。

さて、この「sp8810ea」とは何かとゆーと、以前に「SpreadtrumのSC8810(SP8810)とSC9610というCPU」という記事でも紹介したが、
中国にあるSpereadtrum社の製造する、GSMと、中国専用の3G TD-SCDMAに対応した、Cortex-A5ベースのCPU SC8810のことだと思います。
中華Android業界では、なぜかよくわかりませんが、「SC8810」ではなく「SP8810」と表記されることが多いです。

わざわざこいつに対応するとは、中国とか、GSMしかない国とかで、廉価スマートフォンとして、かなり売り込む気まんまんですね。

・・・あれ?
検索したら、ずばりそのもののリリースを発見。

2012/07/16発表のSpreadrum社公式リリース「Spreadtrum Low-Cost Smartphone with HTML5 Operating System Demonstrated at Mobile Asia Congress 2012

ようやく、表に出てきた、という感じみたいですね。

さて、現状発売されていいるSC8810搭載機について、fastcardtechで見る限り

とか、そんな感じの価格です。
K-Touch、Lenovoも出しているのがちょっと意外です。

まぁ、個人的には、MediaTekチップセットに対応するべきなんじゃん?と思うわけですが、そこまではやらないのかなぁ・・・

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