月別アーカイブ: 6月 2012

VPSで変換した動画を疑似ストリーミングする場合の話

 以前の記事で、ffmpegを使ってお名前.com VPSさくらVPS上でTS録画をMP4変換する記事を書いた。
 普段、Android標準ブラウザやChromeで見ていると普通に疑似ストリーミングが出来ていたんだけど、仕事関係でIEやFirefoxで見たら、QuickTimeプラグインが立ち上がって、ファイルダウンロード完了しないと再生できないことに気づいた。
 対応方法は、MP4BoxでMP4コンテナを作り直すこと。
 MP4BoxはWindowsでメジャーだけど、GPACの中にもあるので、LinuxでもGPACをビルドして、変換後のMP4を再構築するようにしてやればIEやFirefoxでも疑似ストリーミング出来るようになる。
 もっとも、個人利用でPCはChrome、スマホはAndroidだから、わざわざ変換しないでも良いんだけど、何となくメモっておく。

(50)


カテゴリー: サーバ設定 | コメントをどうぞ

お名前.com VPSと物理サーバ(Proliant ML350/Xeon E5506)のベンチを比較してみた

 普通の物理サーバと比較してみる為にベンチを取ってみた。
 ML350(Xeon E5506x1, 12GB RAM, SAS 10000rpm HDD)

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: ml350.local: GNU/Linux
OS: GNU/Linux — 2.6.18-194.17.1.el5 — #1 SMP Wed Sep 29 12:50:31 EDT 2010
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=”UTF-8″, collate=”UTF-8″)
CPU 0: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4264.7 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 1: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4264.8 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 2: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4264.5 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 3: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4264.6 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
12:09:58 up 3 days, 2:08, 4 users, load average: 1.20, 0.94, 0.68; runlevel

————————————————————————
Benchmark Run: 木 6月 21 2012 12:09:58 – 12:37:56
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 12209665.4 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2426.1 MWIPS (9.8 s, 7 samples)
Execl Throughput 4007.8 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 486551.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 142487.1 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1155556.7 KBps (30.0 s, 2 samples)
Pipe Throughput 928752.1 lps (10.0 s, 7 samples)
Pipe-based Context Switching 270718.7 lps (10.0 s, 7 samples)
Process Creation 11906.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 6160.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2213.6 lpm (60.0 s, 2 samples)
System Call Overhead 751282.6 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 12209665.4 1046.2
Double-Precision Whetstone 55.0 2426.1 441.1
Execl Throughput 43.0 4007.8 932.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 486551.5 1228.7
File Copy 256 bufsize 500 maxblocks 1655.0 142487.1 860.9
File Copy 4096 bufsize 8000 maxblocks 5800.0 1155556.7 1992.3
Pipe Throughput 12440.0 928752.1 746.6
Pipe-based Context Switching 4000.0 270718.7 676.8
Process Creation 126.0 11906.2 944.9
Shell Scripts (1 concurrent) 42.4 6160.0 1452.8
Shell Scripts (8 concurrent) 6.0 2213.6 3689.4
System Call Overhead 15000.0 751282.6 500.9
========
System Benchmarks Index Score 1012.6

————————————————————————
Benchmark Run: 木 6月 21 2012 12:37:56 – 13:06:09
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables 47698281.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 9706.0 MWIPS (9.9 s, 7 samples)
Execl Throughput 15605.2 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 350054.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 105229.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1028767.1 KBps (30.0 s, 2 samples)
Pipe Throughput 3623665.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 1243005.6 lps (10.0 s, 7 samples)
Process Creation 47556.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 22027.5 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 3062.2 lpm (60.0 s, 2 samples)
System Call Overhead 2917520.5 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 47698281.2 4087.3
Double-Precision Whetstone 55.0 9706.0 1764.7
Execl Throughput 43.0 15605.2 3629.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 350054.4 884.0
File Copy 256 bufsize 500 maxblocks 1655.0 105229.8 635.8
File Copy 4096 bufsize 8000 maxblocks 5800.0 1028767.1 1773.7
Pipe Throughput 12440.0 3623665.5 2912.9
Pipe-based Context Switching 4000.0 1243005.6 3107.5
Process Creation 126.0 47556.5 3774.3
Shell Scripts (1 concurrent) 42.4 22027.5 5195.2
Shell Scripts (8 concurrent) 6.0 3062.2 5103.6
System Call Overhead 15000.0 2917520.5 1945.0
========
System Benchmarks Index Score 2446.5

お名前.com VPS 2GBの3パラレルとML350の4パラレルのベンチの比較

 比の数字が大きいほどお名前のインデックスが高い。
 あれ・・・専用サーバよりもCPU周りの結果が良い。 そして、いつも思っているとおり、ディスク周りが遅くて、物理サーバの半分以下になっている。
 ディスク周りが改善されればパフォーマンス的な不満はほぼ無くなりそうだ。

(72)


カテゴリー: レビュー | タグ: , , | コメントをどうぞ

個人用電子メール証明書を無料で入手する

 お名前.com VPSでもさくらのVPSでもサーバ証明書としてSSLボックス RapidSSLを入れて活用しているわけだけど、そのほかにメール通信も保護したい。
 電子証明書発行機関としてそこそこ有名なCOMODO社が個人利用向けに無料で電子メール用証明書を発行しているので、それを利用する。
 こちらのサイトから申請することが出来る。
 有効期間1年で電子メール署名・暗号化に使うことが出来る。 期限が来たら再発行を申請すれば新しい証明書を受け取ることが出来る。
 相手方と鍵を交換していないとメールの暗号化は出来ないが、署名は出来る。
 署名は、秘密鍵とメールの文書から生成してメールに添付し、相手側で公開鍵により確認することで、メールの文面が改ざんされていないことを証明する方法だ。
 暗号化したメールは相手が対応していない環境で受信できないが、署名は添付ファイルがついてくるだけなので、確認をしなければ添付ファイルを無視して本文を読むことが出来る。
 ネットワーク社会で少しでもメールの信頼性を向上させるため、出来るだけ導入しておきたいところだ。

 なお、証明書を入れたマシンが故障したりして、期間内に同じアドレスで新しい証明書を取得する場合には、既存証明書の無効化(Revoke;Revocation)が必要となる。
 COMODOのメール証明書無効化はこちらのページから行うことが出来る。

(43)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | タグ: , | コメントをどうぞ

JavaScript/jQueryでファイルアップロードフォーム(インプットタグ)の拡張子を確認する

<form name=’test’>
<input name="picture_file" type="file" >
</form>

 こんな感じのファイルアップロードフォーム(インプットタグ)を用意して、ファイルをアップロードさせる時に、タグの属性(accept)でファイル形式(拡張子)を設定できるけど、ブラウザ依存なんで、JavaScriptでアップロードファイル名の拡張子をチェックしたい時の開発パーツ(jQuery利用)

<form name=’test’>
<span id=’picture_file_span’><input name="picture_file" type="file" id="picture_file" onchange="extchk(‘picture_file_span’, $(this).val());"></span>
</form>

<script type=’text/javascript’ src=’https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’></script>
<script type="text/javascript">
    function extchk(id, fn){
        var fnsplt = fn.split(".");
        var ext = fnsplt[fnsplt.length – 1];
        switch(ext.toLowerCase()){
            case "jpg":
            case "jpeg":
            case "gif":
            case "png":
                return true;
                break; //未到達コード
            default:
                alert(‘未対応のファイル形式です’);
                jQuery(‘#’+id).html(jQuery(‘#’+id).html());
                return false;
                break; //未到達コード
        }
    }
</script>

 ファイルインプットタグの変更イベントで、設定したファイル名の拡張子がcaseに列挙されていればtrue,それ以外はアラートメッセージを出してファイルインプットをクリアした上でfalseを返している(IEではfile inputタグのvalをクリアすることは出来ないので、inputタグをspanで括って、中身を書き直すことでクリアしている)
 最初、jQueryでバインドしたが、htmlの差し替えでファイルインプットをクリアするとバインドが解除されるので、タグのonChangeに載せている。
 ファイルの中身を確認しているわけではないけど、簡単なチェックにはなるからWeb開発時に使い回せるだろう。

テストページ

ソースの整形にはHTML特殊文字をエンコードする on さくらVPSを利用している。

(985)


カテゴリー: jQuery | コメントをどうぞ

Web開発のお供にBootstrap

 ツイッターが提供しているBootstrapっていうライブラリ(?)がある。
 Web開発をする時、ページのスタイルを作るのが結構面倒なんだけど、Bootstrapには基本的な枠組みとかフォームパーツのアレンジとかがセットになって、CLASSを適当に設定してやると、通常のINPUT BUTTONを画像ボタンみたいに色づけしたりも出来る。
 基本的に、ちょっと大きめで、スマホページとかでタッチ操作に向いている感じだけど、追加のスタイルでサイズを調整すれば良い感じでWebサイトが作れる。
 難しいスタイルを作らずに、簡単にそこそこ見栄えのするページを作りたい時にオススメのアイテムだ。

(64)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

以前の記事で書いた、さくらVPSでKNOPPIXを動かす記事のおまけ

 以前、KNOPPIXさくらのVPS(virtio_blk)上で動作するようにする記事を書いたけど、今回、仕事関係で複数のVPSサーバーをまとめて設定する必要が生じた為、KNOPPIX利用のイメージングをて行った。
 せっかくminirt.gzを作成したので、基本設定状態で差し替えればいいminirt.gzイメージを置いておく。

Virtio起動対応KNOPPIX用Bootイメージこのファイルをminirt.gzとして配置してやれば、KNOPPIXがVirtio起動デバイスなお名前VPSさくらVPSで動作するようになる。

  1. KNOPPIXを入手する(最新CD版を利用した)
  2. DaemonTools or WinRARを入手する
  3. KNOPPIXのISOイメージをDaemonToolsでマウントするかWinRARで開く。
    CDの/KNOPPIXをVPSの/KNOPPIXとしてコピーする。
    CDの/boot/isolinuxの中身をVPSの/boot/KNOPPIXにコピーする。
    ついでに、上に置いてあったknoppix_virtio.gzファイルで/boot/KNOPPIX/minirt.gzを置き換える。
  4. VPSのGRUB設定を追加する。
    VPSの/boot/grub/menu.lstに追記して、KNOPPIXを起動できる様にする(最下行に追記)

    title KNOPPIX
    root (hd0,1)
    kernel (hd0,0)/KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd (hd0,0)/KNOPPIX/minirt.gz

     デフォルトインストールのさくらVPSだと、hd0,0が/bootで、hd0,1が/なので、ルート配下の/KNOPPIXにアクセスする場合はhd0,1である。 なお、kernelとinitrdでは/boot/KNOPPIXに配置したファイルを使いたいので、hd0,0である。

  5. システムを再起動して、直ちにVNCコンソールを開く。
    GRUBのスタート画面でカーソルキーか何か押すと選択画面が開く。 この時、先ほど追記したKNOPPIXがあるので、選んでEnter。
    KNOPPIXが起動する。
  6. (11)


カテゴリー: サーバ設定 | タグ: , , , , | コメントをどうぞ

お名前.comのVPSとRTX1000の間にOpenswanを使ってIPSec方式のVPNを設定した

 Windows化したさくらVPSサーバー固定IPプロバイダでつないだRTX1000の間にアグレッシブモードメインモードIPSecを張っていたわけだけど、今回はCentOS 6環境のお名前.com VPS(KVM)サーバーとの間にメインモードのIPSec VPNの設定を行った。

 IPSecはオープンな規格であるものの、独自実装が多くて、なかなか相互互換が得られない困ったちゃん。
 特にLinuxのIPSec実装には色々なソフトがあって、つながる組み合わせ、つながらない組み合わせが難しい。
 今回使ったLinuxのIPSec実装であるOpenswanは、CentOS標準パッケージなのでメジャー系ではあるものの、あまり普及しているとはいえず、ネット上で情報収集してもL2TPと組み合わせてスマホを接続するような情報ばかりで、最終的にソースコードを眺めつつ、設定を詰めるのに1週間以上かかってしまったが、何とか構築することが出来たのでメモしておく。

RTX1000の設定

ip route VPSのグローバルIPアドレス gateway tunnel 1 filter 1001 1002 1999

ip filter 1001 reject * * udp * 500
ip filter 1002 reject * * esp
ip filter 1999 pass * *

tunnel select 1
tunnel name VPN2VPS
ipsec tunnel 1
ipsec sa policy 1 1 esp 3des-cbc sha-hmac
ipsec ike always-on 1 on
ipsec ike encryption 1 3des-cbc
ipsec ike esp-encapsulation 1 off
ipsec ike group 1 modp1024
ipsec ike hash 1 sha
ipsec ike local address 1 192.168.0.1
ipsec ike local id 1 192.168.0.1
ipsec ike payload type 1 3
ipsec ike pfs 1 on
ipsec ike pre-shared-key 1 text 秘密だよ
ipsec ike remote address 1 固定IPだよ
ipsec auto refresh 1 on
ip tunnel tcp mss limit auto
tunnel enable 1

3des-sha1の組み合わせで、ESP有効、MODP1024設定でPFS有効のポリシー(軽いdes-md5を試みたが、yumパッケージ版ではdesはサポートされておらずビルドし直さなければならない)

Openswanの導入は、CentOS標準のyumからの導入でOK(yum install openswan)

Openswanの設定
/etc/ipsec.conf

 auto=startだと起動時に接続にいく。 addにすると、コマンドラインから ipsec auto –up homenetwork のようにコマンドを打つことでリンクアップできる。
 今回は認証がsecret(事前共有鍵)なので、/etc/ipsec.secretsに
: PSK “事前共有鍵”
 のように記述しておく。
 電子証明書認証も出来る。

 VPN接続がうまくいくと、LAN側のPCで”traceroute VPSサーバーの固定IP”とか実行すると、デフォルトゲートウェイVPSサーバーのIPの順で表示される(VPNが無いと、デフォルトゲートウェイ対向ルータインターネットVPSサーバーのIPというように、中間のアドレスが表示される=トンネルモードVPNだと仮想的に1ホップになる)
VPSサーバー側でnetstatを実行すると、VPNで繋がっていないとルータの外側IPが表示されるが、繋がっているとLAN内部のIPがそのまま表示されることでも確認できる。

 VPNを設定しておくと、VPSサーバーからsambaを経由してLAN上のWindowsマシンの共有ストレージを利用したり、LAN上のマシンからPOP3接続したりしたときに、VPSサーバー<=>ルーター間の情報はすべて暗号化されるためセキュアで良い。

参考
参考
RTXのIPSec設定参考
新しいRTXだとこんな事も出来る

(343)


カテゴリー: サーバ設定 | タグ: , , , , , | 1件のコメント