2008年6月5日(木曜日)

今から覚えるXen part1. Xenについて

カテゴリー: - halt @ 13時03分28秒

haltです。

皆さんは仮想化を行うソフトウェアの事をご存知でしょうか。
普通、1台のコンピュータではパーティション分割などによって複数のOSをインストールする事はできても、複数のOSを同時に動かす事はできません。
しかし、仮想化ソフトウェアを利用してコンピュータの中に複数の擬似的なコンピュータを作り、その上でOSを動かす事で複数のOSを同時に動かす事ができるようになります。

レンタルサーバでは、この仕組みを利用して、1台のサーバに複数のOSを入れ、そのOSのroot権限を貸す、VPSというサービスを行っています。

仮想化を利用する事で、複数のサーバを1つのマシンで運用できるようになるため、物理スペースの節約、電気代の節約などができるようになります。

業務を行っている期間が長ければ長いほどサーバは増えるものです。グループウェアサーバ、ファイルサーバ、テストサーバ、本番サーバ、xx社と通信する専用のサーバetcetc…
そして物理サーバは老朽化するという事がたくさんのサーバを管理するサーバ管理者を悩ませます。「たぶんこのサーバは電源を切ると二度と起動しなくなる」という謎の発言を聞いた事がある人もいるでしょう。
7年、8年も動き続けているサーバの中には再起動するだけで故障しかねないものが多くあるのです。

これらの多くのサーバを、Xenを利用すれば1台のサーバでまとめる事ができるようになります。最新のコンピュータは古いコンピュータの何倍もの性能を持ちます。そして文字通り、古いコンピュータをその倍数分だけ動かす事ができるようになるのです。

仮想化の大きなメリットとして、「デバイスドライバに依存しなくなる」という事があります。古くなったサーバ、ファンや電源が壊れたサーバからハードディスクを抜き出して、新しいサーバで使う場合、それまでつかっていたサーバと新しいサーバでドライバが違う為に単純にハードディスクを移動しただけでは使えなかったりします。
一方、仮想化されたOSは一律にXenが作り出した仮想環境で動作するので、物理サーバが故障しても簡単に別のサーバに移動する事ができるようになります。

これは、Xenが持つ「ライブマイグレーション」を利用する事でさらに大きな意味を持ちます。
ライブマイグレーションとは、「2台の物理サーバの間を仮想マシンが無停止で移動する」仕組みの事で、これを利用すると、サーバAで稼動しているOSを稼動状態のまま、サーバBに移動する事ができるようになります。

これから数回にわけて、Ubuntu Linuxを利用したXen-3.2の環境構築方法について紹介していきたいと思っているのでよろしくおねがいします。


2008年5月29日(木曜日)

Postgresqlのシーケンス名は63文字までしかうけつけない

カテゴリー: - halt @ 03時18分34秒

haltです。

皆さんはタイトルの件。ご存知でしたか?
ドキュメントの上では

識別子とキーワード
http://www.postgresql.jp/document/current/html/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

の部分に書かれていますが、シーケンス名に限らず、識別子に関しては63文字しかうけつけてくれません。

単純に識別子が63文字までという制限であればさほど問題はないのですが、この制限によってcreate table文発行時に自動生成されるシーケンスス名がまるめられてしまうという現象が発生します。

例えば

 myproject_project_control_log(29文字)

というテーブルがあってこのキーが

 myproject_project_control_log_id(32文字)

の場合

myproject_project_control_log_myproject_project_control_log_id_seq

というシーケンス名になるのですが、これは66文字の為、まるめられて

myproject_project_control_log_myproject_project_control_log_seq

という感じになってしまいます。

シーケンス名は「テーブル名」+「カラム名」+「_seq」という構成なので、決め打ちでシーケンスを参照できるはずなのですが、このまるめ処理によってシーケンスを参照する事ができなくなり、エラーが発生します。

実際はここまで長いシーケンス名になる事はあまりないでしょうが、プレフィクスなどをつけている場合は注意したほうがよいでしょう。


2008年5月22日(木曜日)

XOOPS Cube勉強会

カテゴリー: - halt @ 00時10分27秒

RYUSウェブサイトトップページでも告知していますが第1回XOOPS Cube勉強会を開催する事になりました。

普段の勉強会は第2回CakePHP勉強会のように、PHPを使ってWebアプリケーションを開発しているプログラマを対象にしたものが多いのですが、今回は、PHPをあまり知らない人に対してXoopsを紹介する新しい形の勉強会になります。

すでに参加枠いっぱいになってしまっていますが次回の開催時にはスタッフblogでも告知するのでご参加ください。


2008年5月14日(水曜日)

file_get_contentsでPOSTできる

カテゴリー: - halt @ 20時16分09秒

意外と知られていませんが、PHPのfile_get_contents関数は、getだけじゃなくてpostもできます。

file_get_contentsは以下のようにstream_context_create関数を利用して送信時のパラメータを詳細に設定することができます。送信時のメソッドだけでなく、ユーザエージェントを変更する事も可能です。

$url = 'http://example.com/';
$options = array(
    'http' => array(
        'method' => 'POST',
        'content' => http_build_query(
            array(
                'q' => 'ryus',
            )
        ),
        'header' => implode("rn",
            array(
                'User-Agent: file_get_contents'
            )
        ),
));
$re = file_get_contents($url, false, stream_context_create($options));

var_dump($re); ?>

PHPでpostしようとするとPEARのHTTP_Requestを使う人も多いですが、単純なPOSTが必要になった時はfile_get_contentsの事も思い出してあげてください。


2008年4月23日(水曜日)

Webで遅延証明書をもらう方法

カテゴリー: - halt @ 20時58分09秒

haltです。

皆さんはインターネット上から遅延証明書を発行してもらえるサービスがある事をご存知ですか?

JR東日本:遅延証明書

7:00〜9:00の間に、下記の路線において遅れが発生した場合を対象に、インターネットでの遅延証明書の発行を行います。
遅延証明書の掲載は当日の9:00すぎから、翌々日24:00まで行います。

とあるように、直近3日間の遅延した路線が表示され、証明書へのリンクをクリックし、印刷する事で遅延証明書を手に入れる事ができます。

遅延証明をもらい忘れた事のある方はブックマークしておく事をオススメします。


2008年4月16日(水曜日)

Linuxの消費電力を下げる3つのコマンド

カテゴリー: - halt @ 18時44分48秒

haltです。世の中のノートパソコンのほとんどはWindows向けに開発されていたり、Linux自体があまりノートパソコンに強くない為、ノートパソコンにLinuxをインストールするとWindowsよりもバッテリーの消費が早くなりがちです。
そこで、以下の3つのコマンドを実行して消費電力を節約しましょう。

一つ目は、

sudo hal-disable-polling --device /dev/scd0

です。CD-ROMの自動認識を切る事で待機電力を減らします。

次は、

sudo echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

です。通常遅延書き込みのタイミングは5秒ですが、これを15秒にし、書き込みの回数を減らします。

最後は、

sudo iwpriv eth1 set_power 5

です。無線LANの動作を省電力モードに変更します。

ノートパソコンの場合、液晶ディスプレイの消費電力が大きいため、残念ながらどのコマンドも劇的な節電にはなりません。
とはいえ一分一秒でも長く起動していたいという時の為に覚えておいて損はないはずです。


2008年4月10日(木曜日)

メールを使ったネットサービスで毎日の生活をちょっと便利に

カテゴリー: - halt @ 02時25分51秒

haltです。皆さんは普段どんなWebサービスを使っていますか?
RSSリーダーやWebメーラーなどパソコンでの情報収集をサポートするサービスはたくさんありますが、今日はパソコンから離れた時に使える携帯メール向けサービスを紹介します。

アメール
アメールは雨の日になるとメールでお知らせしてくれるサービスです。毎日天気予報をメールで受信するのは面倒ですが、雨の日だけメールが来るので会社に行く前にメールチェックしておけば、傘を忘れずに済みます。

スケジュール管理ツール - rpad.jp
R*PADは、特定のメールアドレスに指定日と、やるべき事を書いてメールすると、指定日当日にメールでお知らせしてくれるリマインダーサービスです。
繰り返し設定もできるので、誰かの誕生日や、ドメインの失効日を登録しておくのも良いかもしれません。

ニワンゴ
ニワンゴは、コマンドをメールで送信する事でそのコマンドの実行結果を返してくれるサービスです。
例えば、

英和 global

と送るとglobalという英単語を日本語にしてくれます。辞書機能は、和英、英和、国語、事典などがあります。
他にも、地図を調べたり、食事できる場所を調べたり、とにかくたくさんの事ができます。コマンドについてはコマンド一覧を参照してください。

パソコンをどこにでも持ち歩くのは大変な上に、起動や終了には時間がかかります。携帯のメール機能を利用して毎日の生活をちょっとだけ便利にしてみませんか?


2008年4月3日(木曜日)

NetCommonsを使ってみよう

カテゴリー: - halt @ 02時11分17秒

haltです。今日は話題のCMS、NetCommonsについて紹介します.
NetCommonsは、公式サイトにあるように、CMS(Contents Management System)とLMS(Learning Management System)とグループウェアを統合したコミュニティウェアです。
NetCommonsを利用する事でeラーニングサイトや、オフィス用グループウシェアを簡単に構築する事ができます。
個人的には最初から用意されているモジュールの数がXoopsよりも圧倒的に多い分、初心者に優しいように感じました。

NetCommonsのバージョン1系列はXOOPSから派生している為、Xoopsを利用した事がある人なら簡単にインストールする事ができます。今回はすでにXoopsを運用しているサーバの上にNetCommons-1.1.3をインストールしてみました。
以下はインストール直後の画面です。最初から様々な機能が利用できるようになっています。

NetCommons

インストールは、ダウンロードしたファイルを解凍し、htmlディレクトリにアクセスするだけです。Xoopsと同じように高度なインストールウィザードが搭載されている為、Web上の画面を見ながら設定していくだけで簡単にインストールできます。
皆さんも是非チャレンジしてみてください。


2008年3月27日(木曜日)

subversionリポジトリを自動で作るスクリプト

カテゴリー: - halt @ 03時08分24秒

今日からスタッフBLOGに参加する事になりました。haltです。

Subversionなどのバージョン管理システムでリポジトリを追加する時、
マニュアルから手順を見て覚えても、リポジトリを追加する時なんてそう毎日あるものでもないのですぐに手順を忘れてしまいます。
毎回調べるのも面倒だし、手順に違いがでて他のリポジトリと構成を変えてしまうと使う時にいちいち構成をチェックする必要があるので
以下のようにシェルスクリプトにしておいて、初期設定をまとめて実行するようにしています。

#!/bin/sh
if [ -z $1 ]; then
        echo "Usage:$0 [project_name]"
        exit
fi
sudo svnadmin create --fs-type=fsfs /var/lib/svn/$1
sudo chmod -R 777 /var/lib/svn/$1/db
sudo chmod -R 777 /var/lib/svn/$1/dav
svn co file:///var/lib/svn/$1 /tmp/buf_svn
svn mkdir /tmp/buf_svn/trunk /tmp/buf_svn/tags /tmp/buf_svn/branches
cd /tmp/buf_svn
svn ci -m “build base”
rm -rf /tmp/buf_svn

このコードをmake_repos.shとして保存し、chmod +xで実行フラグをつけて、引数に作りたいリポジトリの名前をつけて実行します。
すると、指定した名前でリポジトリを作成し、

  • branches
  • tag
  • trunk

のディレクトリまで自動で追加します。あとはsvn coでtrunkをとりだし、importするだけです。

よく使う操作をスクリプト化する事も便利ですが、リポジトリの追加のようなたまにしか行わない操作もスクリプト化しておく事で忘れてしまった手順を思い出す必要がなくなって便利です。


8 queries. 0.027 sec.
Powered by WordPress Module based on WordPress ME & WordPress

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.