カテゴリー

アクセスカウンター


since 1996/06/14

Count per Day

  • 38今日の訪問者数:
  • 41昨日の訪問者数:
  • 558月別訪問者数:
  • 2現在オンライン中の人数:

Sony DR-GA500



11月に入って仕事が落ち着いたので休みを順当に取れるようになったんですが、それに伴い衝動買いが激しくなってきました。
今回はこれ。7.1chのヘッドフォン。
チューナーがほぼ完全にパソコン用といった感じですが、パソコン背面にある入力端子(ジャックが6本くらいあるやつ)をすべて占有すると、7.1chになります。まぁ、コネクタが足りなくても、5.1ch、2ch(2chならUSB接続も可)で使えます。
音はさすがにいいですね。マイクも付いてるのでボイスチャットにもいいかも。
ただ、重量はそこそこあるのであまり長時間は厳しいかなぁ。出力端子もヘッドフォン以外には無いので、単体でスピーカ出力に切り替えたりすることもできません。うちでは、光デジタル出力もパソコンについてるので、そっちをスピーカ、ジャックの方をヘッドフォンとし、Windows上から切り替えて使い分けています。
そんな感じなので、よほどこだわりがある方か、パソコンで状況によって切り替えられるような使いこなしが出来ないと、使いづらいかもしれませんね。

64bit

blog-2010-11-06-Score
パソコンをスペックアップしました。ちなみに今回の変更目的は、


  • Lightwaveのレンダリングで、メモリ3GByteでもメモリ不足になる。


    • メモリ購入


  • メモリ4GB overにするには、今の32bitOSじゃダメ。


    • Windows7 64bit版の購入


  • なんか、3rdモニタ(Buffalo GX-DVI/U2を使ってUSB接続)がWin7 64bit版で動かない(DWM.exeが死ぬ)。


    • グラボ購入


  • グラボを二枚差しにしたら、400W電源では足りないみたいで不安定


    • 電源購入



…という感じです。
で、今のスペックはこんな感じ。

  • CPU


    • Intel i7 930 2.8GHz


  • MEM


    • DDR3-1600 2GB x 3(UMAX) = 6GByte

    • DDR3-1066 1GB x 3(UMAX) = 3GByte

    • ※合計9GByte。トリプルチャネルで、DDR3-1066側をクロックアップして、全体がDDR3-1600に見えてる感じ。


  • M/B


    • Asus P6X58D-E


  • G/B


    • nVidia GeForceGTS450(Leadtek WinFast GTS450)

    • nVidia GeForce9600GT


  • HDD


    • OCZSSD2-1VTX30G(30GB SSD) x2(RAID0)

    • Hitachi HDS725050GLA360 x2(RAID0)

    • Hitachi HDS721010CLA332(1TB)


  • DVD


    • LG電子GH24NS50


  • POW


    • 600W(アクティス 明智光秀)


  • CASE


    • Antec SOLO



 ちなみに、Windowsは32bit版と、64bit版が出ているけど、最大の違いはこの最大メモリ容量にあると思う。32bit版の場合だと、最大でも4GByte(Windowsでは1GByte分OSにとられるので、実質3GByte程度)までのメモリしか扱えない。
まぁ、こういうメモリを馬鹿食いする特殊なアプリの他、サーバなどで仮想化をして複数のOSを動かす時くらいしかここまでメモリを使うことも無いと思う。
それにしても、メモリがギガを超えるなんて、Windowsが32bit化した時には正直当時の次元ではイメージがつかなかったけどね…
なお、64bitOSになっても当然メモリの上限はある。マザーボードの上限やOS(特にWindows)のエディションによっても違うので注意が必要。

Linuxからメール転送

 家のサーバを仮想化してから、管理用のメールの扱いが面倒になりました。
解決しなければならない課題は2つ。


  • Linuxは管理用のメールを「root」へ送ろうとする。ドメインは自分のホスト名が補完されるが、仮想化したホストそれぞれが自分にメールをしてもしょうがないので、これをサーバ1カ所に集約させなければならない。

  • うちの環境はルーティングの問題で、WAN側の自分自身のサーバへ到達できない。


 解決策はいくつかあるけど、この2つを同時に且つ手間のかからない変更で対応したいので、DNSでやっつけてみる。

  • メーラは、メールアドレスのドメイン名と、DNSのMXレコードから探して配送する。つまり、仮想サーバ毎のMXレコードを定義してやればそのサーバへメールを転送できる。

  • LAN側のPCからDNSを引くときは、WAN側のIPでは無く、LAN側のIPを引くようにする。


これで、DNSの設定変更のみで行ける。ちなみに、メールの転送先はsendmailなどの場合「/etc/mail/submit.cf」にSMTPサーバを指定できるので、それでも可能。
今回はWAN側のIPに到達できない問題を孕んでいる関係もあるので、submit.cfには手をつけない。

MXレコードを追加して、メールを転送する


 この方法は当然自分でDNSを立ててないと対応できない。
対応方法は簡単で、正引き設定ファイルにMXレコードを追加するだけ。
ただし、サーバ分の追加が必要。
送信元をvm.sample.com、送信先をsmtp.sample.comとした場合は、以下のような感じになる。

vm.sample.com. IN MX 10 smtp.sample.com.

これで、たとえば「root@vm.sample.com」宛のメールはsmtp.sample.comサーバへ送られる。
 ちなみに送信先(受信側)サーバでも「root@vm.sample.com」を自分自身宛と認識させなければならない。
たとえば、postfixの場合は、main.cfのmydestinationにvm.sample.comを追加することで解決する。

LAN側の名前引きの挙動を変える


 これは、bindの機能でできる。bind9のどこかのバージョンからできるようになったみたい(この機能は今回初めて使ったので、いつから使えるものだったのかはよくわからない)。
まず、ACLの定義。LAN側サブネットが「192.168.0.0」の場合。

acl "allowed-internal-hosts" {
192.168.0.0/24;
127.0.0.1;
};

次にviewの定義。

view "internal" {
match-clients { allowed-internal-hosts; };
allow-query { allowed-internal-hosts; };
…(略)
}

これで、LAN側ホストからDNSへ問い合わせが来た場合は、このinternal viewを参照するようになる。
ちなみに、WANからのアクセスについては、以下のような定義にしておけばよいみたい。

view "external" {
match-clients { any; };
allow-query { any; };
…(略)
}

 略の部分には、正引きだの逆引きだののzoneの定義を書けば良い。
で、基本的に、internalもexternalも書く内容は一緒にしておくが、今回は正引きの挙動を変えたいので、正引きのzone定義のみを変更する。

view "internal" {
match-clients { allowed-internal-hosts; };
allow-query { allowed-internal-hosts; };
…(略)
zone "sample.com" {
type master;
file "named.internal.sample.com";
};
…(略)
}
view "external" {
match-clients { any; };
allow-query { any; };
…(略)
zone "sample.com" {
type master;
file "named.sample.com";
};
…(略)
}

 これで、LANからの問い合わせは「named.internal.sample.com」を、WANからの問い合わせは「named.sample.com」を参照するようになる。
あとは、普通の正引き設定ファイルなので、それぞれのIPアドレスを定義してやれば良い。
前項のMXレコードの定義も、WAN側には関係の無い話なので、LAN側の正引き設定ファイルにのみ記載しておけば良い。

supercell

supercellの最近お気に入りの曲。

星の瞬くこんな夜に


http://www.nicovideo.jp/watch/sm11859659


 うたかた花火と一緒に発売された曲だけど、個人的にはこっちの方が好き。歌詞とかどーとかじゃなくて、曲の感じがいいね。

さよならメモリーズ


http://www.nicovideo.jp/watch/sm9286217
 後半の小声のあたりからの感情むき出しな歌詞や、曲の感じがいいですね。

携帯ケースVer5

blog-2010-10-06-KEITAIcase久々の革細工です。携帯ケースですが、今回のはしまうと言うより納めておくだけのホルスタータイプなので、フタがありません。
革の裏地をあえて表に出すスエード仕立てにしたので、見た目は地味ですが味のある感じになりました。
っていうか本当に久しぶり過ぎて、針に糸を通す方法(革用縫い針は布用とちょっと違う通し方をしまう)も忘れてましたよ・・・

今日からまた

仕事の勤務先がみなとみらいになりました。
渋谷より空気がいいですね(海が近いから?)。
通勤も少し楽です。
ただ、仕事の方は2ヶ月くらい過渡期になるのでちょっと大変ですね。そんな訳で引き続きブログの更新が滞るかもです。

三画面その2

blog-2010-09-18-P1000251 半年くらい前にパソコンのモニタを三画面にしたんですが、ちょっと左右に広すぎでした。
で、友達との話の中で偶然縦置きのモニタの話題になってひらめきました。左右のモニタを縦置きにすればいいのかと。
モニタを縦置きにするのは、ワープロをやる人には一般的ですね。文書がとても見やすくなります。
三画面の場合は、左右のモニタを縦にすることで、正面は広く、左右はメールやネットの画面が縦に見やすくなります。左右に広すぎるのも緩和されますね。
ただ、だだっ広いだけじゃなく、機能的になってきました。

胸キュン

http://www.nicovideo.jp/watch/sm8957607


おなじみ?YMOの君に胸キュンのアレンジ動画ですが、こういうのを見ているとすごい人も要るものだと思う。
キャラは3Dモデルから起こしているみたいだけど、パターンがいくつかあるので、再利用が可能にしても作るのにだいぶ時間がかかるはず。あとは、画面のエフェクトのセンスもすごいですね。
こういう3Dモデルを使った動画は、単に動画を前提にした3Dモデルを作るだけじゃなくて、物理演算系のモジュールとかのプラグインも必要だし、プラグイン自体の質にも善し悪しがあるので、それらをバランスよく使って表現しなければならない。
つまり、熟練しないとなかなか作れるものじゃないってこと。

LAMPの設定

LAMPとは、Linux+Apache+Mysql+PHPというWebアプリケーションの実行環境の通称ですね。PをPerlやPythonと読む場合もありますが、元々の言葉の由来はPHPなんじゃないでしょうか。

で、個人的に、MySQL+PHP環境を好んで使うことが無かったので、あまり設定方法をしりません。しかし、いろいろ検証する度に設定方法を調べるのもアレなので、メモを残しておきます。

なお、環境としてはCentOSやFedoraなどの、yum、chkconfig、serviceコマンドが使える環境を想定しています。

Linux+Apache

あまりここでは書くことは無いでしょうが、検証環境を作る時はだいたいWebのDocument Rootを使わないので、その設定の書き方です。httpd.confに追記します。

Webアプリケーションのパスを「/path/to/web_apps」とし、Webからのアクセスを「http://example.com/web_apps/」としたい場合の書き方。

Alias /web_apps /path/to/web_apps
<Directory /path/to/web_apps>
Order allow,deny
Allow from all
#AllowOverride All
</Directory>

.htaccessなどを有効にしたい場合は、「AllowOverride All」のコメントを外します。

最近、apacheやphpをyumなどでインストールすると、phpが既に有効になっていますので、その辺は省略します。

PHP

yumでの一般的なインストール方法の例です。

yum install php php-mbstring php-gd php-mysql

関係モジュールも含めてインストールします。

  • php
    • php本体です。
  • php-mbstring
    • マルチバイトを扱うモジュール。日本語環境を利用する場合によく要求されます。
  • php-gd
    • 画像加工用のモジュールですね。WebでPhotoAlbumを使うときに要求されることが多いかな。
  • php-mysql
    • PHPからMySQLへアクセスする為のモジュール。

PHPが正しく動作しているかは、アクセス先のディレクトリに、拡張子がphp(index.phpとか)のファイルを作成し、以下のような内容にします。

<?php phpinfo();?>

ブラウザからこのファイルへアクセスして、PHPのパラメータが出てくれば動作確認OKです。

ちなみに、確認後は速やかにファイルを消しましょう。

MySQL

まず、yumからのインストール&デーモンの起動方法。

yum install mysql-server
chkconfig mysqld on
service mysqld start

なお、初回のMySQL起動時には、なにやらメッセージがいろいろ出てきます。この中で重要なのは、初期の不要な情報の削除に関する記述です。デーモン起動後は以下のコマンドで一通りやってくれます。

mysql_secure_installation

基本はすべてYesで匿名ユーザから、サンプルデータベースまで不要なものは消してくれます。また、「New password」など聞かれる箇所がありますが、これはMySQL用のrootアカウントのパスワード(OSとは別物)。必ず設定しましょう。また、あとで使うので忘れるのもダメです。

パスワードが有効になっているかは、以下のコマンドで確認ができます。

# mysql -u root -p
Enter password:←MySQLのrootパスワードを入力。
(略)
mysql> quit ←「mysql>はMySQLのプロンプト。quitで抜けられる。」
Bye

次に、Webアプリ用のユーザとDBの作成です。rootユーザでも作れますが、Webアプリ毎に作った方がいいでしょう。

この例では、

ID:web_apps
DB:web_apps_db

とします。

まずは、MySQLへのログインと、ユーザの作成。

# mysql -u root -p
Enter password:←MySQLのrootパスワードを入力。
(略)
mysql> grant all privileges on web_apps_db.* to web_apps@localhost identified by ‘パスワード’;
Query OK, 0 rows affected (0.00 sec)

次にDBの作成ですが、DBは作成したユーザでログインしなおして作成します。

mysql> quit
# mysql -u web_apps -p
Enter password:←web_appsのパスワードを入力。
(略)
mysql> create database web_apps_db DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> quit Bye

 

サーバリプレース完了

blog-2010-07-28-P1000051新しいサーバ用のモニタは37インチの亀山モデルですw
あ、これは単にサーバ専用のディスクが無いので、代わりにテレビにつなげているだけです。サーバにHDMI端子が付いてるので、すんなりつながります。大画面でLinuxもいいですねw

さて、サーバのリプレースを完了しました。以前、M/Bが壊れてから仮サーバで動かしていたんですが、それから完全に修復した感じです。
で、今回はサーバをKVM(Kernel-based Virtual Machine)で仮想化しています。
Web・Mail・DNSなどの公開用OSと、ファイルサーバ用家庭内OSとで分けました。おかげでセキュリティ設定がシンプルになりました。シンプルなのは強固なことにもつながるのでいいですね。
ところで、今回のリプレースはいくつか失敗をしました。


  • ディスクをRAID1(ミラー)では無く、RAID0(ストライピング)で組んで公開してしまった。


    • どこでどう間違えたか全然記憶が無いんだけど、一端データをすべて別のディスクに移してRAIDを再構築しました。RAID0だと、スピードはx2だけど、障害発生率もx2なので、速攻で直しました。


  • M/BがLGA775なのにDDR3


    • これはわかる人にしかわかんない話だけど、だいぶ珍しいM/Bです。おかげで既存のメモリが使えなくて余計な出費になりました・・・



ってことで、今回の構成は以下の通りです。

  • CPU:Core2Duo E6400


    • ちょっと古いけど、2coreで且つ電気を食わないのでお気に入り。


  • MEM:DDR3-1333 DualChannel 4GByte


    • でもM/Bが1066までしか対応してない。


  • M/B:Gigabyte GA-EG41MFT-US2H


    • LGA775&DDRの珍しいM/B。MicroATX。グラボ、サウンド、Nic内蔵。HDMI出力端子付き。

    • Gigabyteは、Linuxとの親和性が高くていいですね。


  • HDD


    • OCZSSD2-1VTX30G(SSD 30G)


      • OS領域はSSD(ディスクでは無くメモリ)を使ってます。可動部分が無いので、省電力・低障害性が狙いです。書き換えがほとんど発生しないOS領域のみなので、軽くバックアップだけをとって障害に備えます。


    • SEAGATE ST31000528AS(1TB)x2


      • こっちはデータ領域。1TBx2本でミラーを組んでいます。




一応、基本機能は提供できる状態になっていますが、内部的な処理がまだ未完成です。バックアップもSDカードを挿してそこに取ろうかなと思ってます。

RAID操作

 なんかいろいろやらかしてしまったので、コマンドを調べたついでに備忘録として残しておきます・・・
操作を誤るとデータがすっ飛ぶのでご注意ください。

パーテーションの作成



「/dev/vda」ディスク上のパーテーションを切るときコマンド。
fdisk /dev/vda
使い方は省略。RAIDパーテーションを作る時は領域タイプをfd(Linux raid 自動検出)を使う。

RAID1(ミラー)の作成。


 たとえば、/dev/vda1と/dev/vdb1でミラーを組んで、/dev/md0を作る方法。

mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/vda1 /dev/vdb1
あるいは
mdadm –create /dev/md0 –l1 –n2 /dev/vda1 /dev/vdb1
※オプションを省略形で書いているだけで、どちらも同じ意味

作成後、マウントする前にファイルシステムを作成して空っぽのディスクにする(ファイルシステムがext3の場合)。

mkfs.ext3 /dev/md0

なお、ミラーディスクを作るとまずそれぞれのディスクが同期を始めます。これが終わらない状態でサーバを落としたりすると起動しなくなったりするので注意です。同期状態の確認方法は以下のコマンド。

cat /proc/mdstat

RAIDを解除する


 当然、mountを解除してから実行します。/(root)や/varなどはmount解除がそう簡単にはできないので注意(やり方は割愛します)。
以下、/dev/vda1・/dev/vdb1でRAIDパーテーションの/dev/md0ができている想定。

mdadm –misc –stop /dev/md0
この後、「cat /proc/mdstat」で確認すると「/dev/md0」が見えなくなってます。
mdadm –misc –zero-superblock /dev/vda1 /dev/vdb1

DeltaMail

Becky!の場合


1,↓「ツール→メールボックスの設定」を選択。


2、「基本設定」タブから「POP3S」を選択。また、認証方式を「標準」にする。ちなみに、「POP3S」を選択時に、「ポート番号を云々・・・」と出てくるので「はい」を選択(「いいえ」でも大丈夫だが)。



3,「詳細」タブで、以下を設定する。

  • POP3が「995」になっていること。なっていなければ995を入力。

  • 「SSL/TLS関連」のところで、「証明書を検証しない」にチェック。また、「クライアント証明書を使用」はチェックをOFFにする。

  • 「SMTP認証」をチェック。図の赤枠内のチェックや欄は特にいじらない(なにもしなくても画像のようになってるはず)。

  • 「POP before SMTPを使用」はOFF。




設定が終わったらOKでウインドウを閉じる。

Outlook Expressの場合


1,「ツール」→「アカウント」を選択。


2,プロパティを選択


3,「サーバ」タブを選択し、「このサーバーは認証が必要」にチェック。
 また、「設定」ボタンを選択し、「受信メールサーバーと同じ設定を使用する」がチェックされていることを確認する。


4,「詳細設定」タブを開き、POP3側の「このサーバーはセキュリティ云々」をチェックする。チェックすると番号が「995」に変わるはず。


設定が終わったらOKでウインドウを閉じる。

munin備忘録

サーバのリソースをお手軽にグラフ化できるmuninですが、いろいろいじってるので備忘録として残しておきます。

  • munin

本体。HTMLデータを作ったりしてる。実体は/etc/cron.d/muninにあり、そこで定期的にデータを作ってる。
設定は、/etc/munin.conf。監視ノードを追加したい時には、以下のような行を追加すれば良い。

[Nickname]
address 192.168.1.xxx
use_node_name yes
  • munin-node

所謂監視エージェント。こっちの実体はデーモンとして稼働している。
設定ファイルは/etc/munin-node.confで、通常は変更不要だが、munin本体が別サーバにある場合は、以下のように通信許可の設定をする必要がある。

allow ^192\.168\.1\.2$
  • munin-node-configure

いろいろ、プラグインの設定支援をしてくれる。
CentOS5の場合は実体は/usr/sbin/munin-node-configureだった。

munin-node-configure

プラグイン一覧と、利用状況が表示される。

munin-node-configure --suggest

プラグインが使えない原因などを教えてくれる。特にコメントが出ていなければたぶん使用可能。

munin-node-configure --shell

使用可能っぽいプラグインを追加する為のコマンド(lnコマンド)をリストしてくれる。「munin-node-configure –shell | sh」とすれば一発登録も可能。

dovecotとSquirrelMailをいじる

 今までずっとpostfix+pop3(apop+pop before SMTP)環境で運用をしてきたけど、さすがに時代遅れ感が出てきた(コンパイルが通るツールが無くなってきた)ので、最新環境を検証してみることにした。

とりあえず方針を決める


まず関係するツール。

  • SMTP:postfix(Maildir環境)


    • これは今までと変更せず。S25Rによる不正メールの除外もそのまま。受信したメールはmboxよりも安全性の高いMaildirで実装。また、pop before SMTPに変わって、SMTP Auth(SMTP認証)を使う。


  • pop3:dovecot


    • 今までのteapopから変更。


  • MUA:SquirrelMail


    • 時々DNSの応答がおかしかったり、そもそも家でしかメールを見れない状態から脱したいのでWebメールを使う。



自分だけのメールサーバでは無いので、いろいろポリシーも決めておく。

  • ユーザはサーバのUNIXユーザ。


    • これは非常に悩んだけど、それほど大規模ユーザではないので、LDAPとかを採用するよりも汎用性が高く、シンプル。


  • サーバにメールを溜め込まない


    • IMAPは使いたくない使わない


      • 機能が限定的になるし、IMAP長期保管に向かない(と個人的に感じてる)。


    • メールデータの蓄積に責任を持ちたくない


  • Webメールはあくまで一時利用目的。


    • 一時的なリモート閲覧用


  • セキュリティは堅く


    • 以前はまだ歴史が浅くて対応を見合わせてきたプロトコルがたくさんあったけど、いつの間にか一般的になってきてるんだなぁ…と実感。

    • POP3S


      • OutlookとBecky!が対応していることを確認したので採用。


    • SMTP認証


      • これも最近では一般的になってきた。


    • SPAM対策


      • 存在しないユーザへのメールはUser Unknownで返す(当たり前なことなんだけど、qmailはできなかったのでw)。

      • 当たり前だけど第三者転送は許可しない。

      • S25R。


    • 当たり前だが、ユーザは/sbin/nologin設定

    • Maildirでデータの保守性を維持

    • Webメールは、個別FQDN運用でhttps。BASIC認証も併用するかも。Digest認証は携帯からだとダメな場合が多いので悩む。

    • メールユーザの作成はWebからさせない。



postfixをSMTP authに対応させる。


 基本的なpostfixの設定方法は省きます。S25Rとかもどこかで書いてたと思うので略。
/etc/postfix/main.cfあたりに以下の行を追加。

# SMTP auth 2010.07.19 add
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination

saslauthdを起動する。

# /etc/rc.d/init.d/saslauthd start
# chkconfig saslauthd on
# chkconfig –list saslauthd

ユーザ毎にMaildirを作る。


既存ユーザには個別にディレクトリを作成するとして、今後の新規ユーザ用。

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

dovecotのインストール


自動アップデートに対応したいので、yum install dovecotで入れる。
mysqlも共連れでインストールされるのか…。
viで/etc/dovecot.confを編集。以下の2行を追加。protocolsは後で変更するかもだけど、今は検証用で。

protocols = imap imaps pop3 pop3s
mail_location = maildir:~/Maildir

ちなみに追加しなくてもデフォルトっぽい箇所があるが、そういう細かいことは気にしない。
dovecot起動

/etc/rc.d/init.d/dovecot start

あっさり完了。chkconfigとかで自動起動の設定も忘れずに。
次にMTUの設定。とりあえず、Beckyの場合。

ツール→メールボックスの設定
POP3サーバの横にあるPOP3Sをチェック。
※なんか言われるけど、とりあえず適当でOK。
詳細タブ
POP3のポート番号を995に変更。
SSL/TSL関連のところで、「証明書を検証しない」にチェック。
クライアント証明書を使用しないのチェックを解除。
SMTP認証をチェック。
※その他はそのまま。ユーザID/パスワードは省略できるって書いてあるので、それに準じる。

SquirrelMailの設定


省略w
結構いろんなサイトで解説してるし、バージョンによって画面構成が変わったりするので、設定するときは最新情報をググった方がよさそうだね。
以下、うちの環境向け情報

環境設定コマンド
/usr/share/squirrelmail/config/conf.pl

KVMでゲストOSを操る

LVMの操作

 今回は、ディスクをLVM(Logical Volume Manager)に一任してるので、その操作が必要になりました。GUIからも操作ができるけど、とりあえずCUIでの操作もしたいのでコマンドを確認します。
物理ディスク情報を表示する

pvdisplay

論理ディスクの情報を見る

vgdisplay

VMから利用可能なボリュームを確認するのはこれが一番楽かも・・・

# ls -l /dev/mapper/

ゲストOSの作成

 virt-managerを使うとGUIから簡単にゲストOSを作れるけど、ネットのブリッジ設定とか微妙にわからなかったり、CUIのvirt-installが思ったより簡単に使えたので、virt-installからのゲストOS作成方法。
 注意するポイントは、今回CD-ROMインストールをしたんですが、CD-ROMを入れた瞬間にホストOSが自動認識してしっかり掴みに来ます。CD-ROMドライブは排他利用ができないようなので、そういう環境の場合はumountするなりしましょう。
 ってことで作成方法ですが、私は以下のようなシェルを書いて作成しました。「-c /dev/cdrom」て書くことでCD-ROMを認識してくれます。
ディスク関連のオプションをコメントアウトしているのは、複数のディスクを認識させたいときにコメントアウトを外して、適時内容を書き換えています。
 ちなみにこれだとvirt-viewerが起動してその中でインストールが始まります。コンソールオンリーでやりたい場合は、最後の2行のコメントアウトを外します。

#!/bin/bash
name=testvm1
memsize=512
disk0=/dev/mapper/VolGroup00-xxxx
# disk1=/dev/mapper/VolGroup01-xxxx
# disk2=/dev/mapper/VolGroup02-xxxx
# OS=CentOS 5.5
os_type=linux
os_variant=rhel5.4
exec virt-install \
-n $name \
-r $memsize \
-c /dev/cdrom \
--vcpus=2 \
--os-type $os_type \
--os-variant $os_variant \
--accelerate \
--network bridge=br0 \
--disk path=${disk0},bus=virtio \
# --disk path=${disk1},bus=virtio \
# --disk path=${disk2},bus=virtio \
# --nographics \
# --extra-args='console=tty0 console=ttyS0,115200n8'

 ちなみに、CD-ROMが入ってないとゲストを作成しつつもインストールが失敗して中途半端な状態になります。
その場合は、virt-managerあたりから強制停止→VMを一度削除して初めからやり直した方が楽です。
 ちなみにインストール後に、ゲストOSでyumとかがうまく動かないことがありました。私の場合は単純に接続先ホストの名前解決ができないだけでしたが、どうもホストOSのファイヤーウォール設定(iptables)の影響をモロに受けるみたいです。

virshコマンド

 コンソールからいろいろ見えるので便利。
ゲストOSの起動と停止。当然、停止はホストOSからでは無く、ゲストOSからシャットダウンコマンドを発行した方がいい(というかホストOSからのシャットダウン設定があるっぽい?)。

# virsh start ゲストOS名
# virsh shutdown ゲストOS名

ゲストOS一覧を見る。「–all」を省略すると、稼働中のゲストOSのみが見える。

# virsh list --all
Id 名前               状態
----------------------------------
- xxx1                 シャットオフ
- xxx2                 シャットオフ

ゲストOSを自動起動設定にする。

# virsh autostart ゲストOS名

 

KVMのインスコ

 


 KVMの本が出たので早速買ったんですが、CentOSのことが書いてない・・・。Fedoraは書いてあるけど、若干違う?
 とりあえず、環境構築の検証で何度もインストールをしてるんですが、さすがにメモをとらないとヤバいので、メモついでにブログっておきます。

OSのセットアップ

x86_64のCentOS5.5ベースでいってます。
32ビット版Linuxを入れてもメモリが4GBに制限されるし、ホストOSが64ビットなら、ゲストOSは32ビット・64ビットどちらも選択できるので幅が広がります。
★選択するソフトウェア
 ホストOSは最小構成にします。
セットアップ中のソフトウェアの構成では、GUIを使いたいのでGnomeを選択します。あとなんだっけ?アプリ関連はすべてOFF。サーバはデフォで印刷が選択されてるのでそれもOFF。
確かベースシステム関連と、GnomeくらいしかONにしてなかったかも。
仮想化関係は後で入れるのでOFF。
★ディスクパーテーション
ディスクパーテーションでは、LVMを選択ですが、以下のような感じにしました。

LVM名 割り当て マウント先
LV00_root 4G /(ルートパーテーション)
LV01_swap 4G swap
LV02_web 4G Webサーバ用
LV03_fs 4G ファイルサーバ用サーバ用
LV04_vm 4G その他検証サーバ用1
LV05_vm 4G その他検証サーバ用2
LV06_vm 残り(8Gくらい) その他検証サーバ用3

VM関連はマウントさせる必要が無いんですが、セットアップに怒られるので渋々設定。後でマウントを外します。
あ、ちなみに32GのSSDを使ってます。
OS部分をここにつっこんで、データ部分はディスクでミラーを組むつもり。
CentOSはフルインストしなければ、4GBでだいたい50%前後を消費します。
★ネットワーク
 固定IPを振ります。サーバがDHCPなんてあり得ないので(後で変更してもいいけど)
★その他
 NTPを有効にします。仮想化環境はホストOSの時計さえ合わせればOKなので。
 あと、SELinuxはよくわからんのでOFF。

OSのセットアップ後のいろいろ

OSを最新化します。

yum update

KVMを有効にします。LVMもGUIでいじりたいので、ついでに追加。
サーバの温度監視などもホストOSでさせたいので、lm_sensorsも追加しています。


yum install system-config-lvm lm_sensors kvm kmod-kvm kvm-qemu-img libvirt python-virtinst bridge-utils virt-viewer

「libvirtd」をデーモンとして起動するように設定。

chkconfig libvirtd on

「lm_sensors」の有効化。だいたいデフォルトで行けるけど、マザーボードの仕様などにもよるので、詳しくは書きません。

# sensors-detect

不要なデーモンを止めます。
「chkconfig –list | grep 5:on」で自動起動するデーモンの一覧が見えます(CUIベースならgrep 3:onね)。私は以下のような感じに、デーモンを止めました。

# chkconfig acpid off
# chkconfig autofs off
# chkconfig avahi-daemon off
# chkconfig bluetooth off
# chkconfig cups off
# chkconfig firstboot off
# chkconfig gpm off
# chkconfig haldaemon off
# chkconfig hidd off
# chkconfig iscsi off
# chkconfig iscsid off
# chkconfig mcstrans off
# chkconfig messagebus off
# chkconfig netfs off
# chkconfig nfslock off
# chkconfig pcscd off
# chkconfig restorecond off
# chkconfig rpcgssd off
# chkconfig rpcidmapd off
# chkconfig sendmail off

基本ポリシーとしては、ホストOSでは極力サービスを提供しないようにしたいので、NFSとかsendmailなどの止められそうなネットワークサービスは止めます。その他セキュリティ系・H/W性能向上/計測系のサービスは動かします。H/Wへの直接アクセス系はホストOSで動かすべきだと思うので。

# chkconfig --list | grep '5:on'
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:on    3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:on    4:on    5:on    6:off
libvirtd        0:off   1:off   2:off   3:on    4:on    5:on    6:off
lm_sensors      0:off   1:off   2:on    3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:off   3:on    4:off   5:on    6:off
portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off
readahead_early 0:off   1:off   2:on    3:on    4:on    5:on    6:off
readahead_later 0:off   1:off   2:off   3:off   4:off   5:on    6:off
smartd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
yum-updatesd    0:off   1:off   2:on    3:on    4:on    5:on    6:off

あと、/etc/fstabを編集してマウント不要なVMパーテーションを消しておきます。

ネットのブリッジ設定。

KVMのネットは、なんだかデフォでNAT構成になってるそうです。VM毎にIPを振る場合はブリッジ構成にした方がいいので、ホストOSをブリッジにします。
以下は、セットアップ時に固定IPを振ってる場合のやり方。

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-br0
# vi ifcfg-br0
※「DEVICE=eth0」を「DEVICE=br0」へ変更。
※「TYPE=Bridge」を追記。
# vi ifcfg-eth0
※「IPADDR」「NETMASK」「NETWORK」「BROADCAST」の項目を削除
※「BRIDGE=br0」を追記。

再起動と環境確認

 なんか、KVMが再起動時に有効にならないとか、デーモンを止めたりとかしてるので、とりあえず再起動します。
ネットの設定を失敗してると再起動後にリモート接続できなくなるので注意です。
再起動後、「lsmod | grep kvm」で以下の表示が出れば、正常にKVMが稼働しています。

# lsmod | grep kvm
kvm_intel              86920  1
kvm                   226208  2 ksm,kvm_intel

あとはゲストOS入れたりとか。

LUMIX DMC-TZ10



デジカメを買いました。
親にあげた二世代前に買ったデジカメ(Nikonのcoolpix S10)が壊れたので、今まで使ってたPanasonicのDMC-TZ3をあげて、代わりにDMC-TZ10を購入。
なんだかんだで、TZ3は2年半も使ってたのか。
型名の通りTZ3→TZ5→TZ7→TZ10という流れの直系の後継機ですね。
ざっと見た感じ、TZ3に比べてハデな変化が無く、地味に進化してる感じです。

  • GPS機能が付いている(地名とか出せるらしい)。

  • 光学12倍ズーム(TZ3は10倍)。

  • 広角25mm(TZ3は28mm)。

  • 1210万画素(TZ3は720万画素)。

  • 動画がAVCHD Lite(ハイブジョン画質)。HDMIミニ端子付き(ケーブルは別売)。

  • SDHCメモリカード対応。


 ハデな機能向上よりも、こういう地味な機能向上は好感が持てます。ほかにも撮影深度の調整とか一眼レフカメラみたいな設定ができるみたい。カメラ素人の私にはその辺はよくわかりません。全自動で撮っちゃいます。
 手ぶれ補正とかはさほど変化なし。やっぱり暗いとブレます。
その他、TZ3からの変化。

  • 本体が一回り小さくなった。感覚的には薄くなった。

  • 再生がダイヤルじゃなくて別のスライドボタン。

  • 動画撮影ボタンもシャッターとは別。

  • 連写が画質優先だと3枚。


 TZ3が何でもかんでもダイヤル選択だったのに対し、撮影設定関連はダイヤル。表示、撮影モードは別のボタンに出したと、機能とUIを完全に分けてますね。特に良い・悪いとも言えないけど、ダイヤルを回す頻度が確実に減ると思う。
 あと、これだけ機能が増えて一回り小さく、若干軽量化されているところもすばらしいですね。感覚的にはTZ3より薄くなった感じ。どこにレンズが収まってるのか不思議な感じです。
バッテリも一回り薄くなってるので、電池の消耗時間も気になるところです。
あと、デジタルズームが今までただの拡大機能(画質が劣化)だったので一切使ってませんでしたが、この機種はそれを抑制する機能が付いているそうです。その機能がどの程度いいのかが今後試してみたいところかな。
たまに動体撮影をするので、連写枚数が減ったのが残念。前と同じ画質ならたくさんとれるんだけどね。せっかくだから高解像度で撮りたいし。

忘れてた

6月14日で、私がWebサイトを公開し始めて14周年でした。
一年前はどうしてたかなぁと思って見てみたら、ほとんど同じことを書いてるし・・・
まぁ、一年前のこのころも忙しかったのかな。

はやぶさ帰還

blog-2010-06-13-00038世界初の小惑星まで行ってきた人工衛星はやぶさが7年の歳月を経て帰ってきました。
最後のミッションである、地球の大気圏に突入しながらカプセルを放つところをu-streamのライブ放送でやっていたので見てました。
画像は、ちょうど衛星が燃えた瞬間のところ。

すごい!
写真
http://www.yomiuri.co.jp/zoom/20100613-OYT9I00808.htm
http://jul.2chan.net/dec/b/src/1276438486782.jpg
http://www.asahi.com/photonews/TKY201006130305.html
動画(ライブ映像の録画:3分くらいのところで見える)
http://www.ustream.tv/recorded/7634995
はやぶさが最後に撮影した地球の写真
http://twitpic.com/1wh78q

(備忘録)KVMで仮想化サーバ

KVMと言ってもコンソールの切り替え機では無くて、Kernel-based Virtual Machineの方で、最近ポピュラーなXenとはまた違った仮想化環境です。
とりあえず書籍などが無いので、Webサイトをあさりながら勉強中。以下のサイトを参考にしてます(特に前者)。
http://www.asahi-net.or.jp/~aa4t-nngk/kvm.html
http://www.ibm.com/developerworks/jp/linux/library/l-linux-kvm/index.html
といっても、まだLinuxがまともに起動するマシンができあがってないので、勉強しながら構築中・・・