サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
trac.mizzy.org
Cobbler と Puppet で検証 VM をさくっと作成 検証用に VM をつくったり消したり、ってことをよくやるんですが、毎回毎回同じような設定をするのがいやなので、うちでは Cobbler + Puppet でこんな風にやってるよ、という例を紹介します。最近 KVM に移行しましたが、ブリッジの設定以外は、Xen でもほぼそのまま適用できると思います。 VM 作成のざっくりとした流れは次のような感じで、3 ステップで完了します。まず koan コマンドで以下のように VM インストールします。 $ sudo koan --server localhost --virt --system=template --virt-name=test-vm インストールが終わったら、VM を起動して、コンソールにアクセスします。 $ sudo virsh start test-vm $ sud
検証用に VM をつくったり消したり、ってことをよくやるんですが、毎回毎回同じような設定をするのがいやなので、うちでは Cobbler + Puppet でこんな風にやってるよ、という例を紹介します。最近 KVM に移行しましたが、ブリッジの設定以外は、Xen でもほぼそのまま適用できると思います。 VM 作成のざっくりとした流れは次のような感じで、3 ステップで完了します。まず koan コマンドで以下のように VM インストールします。 $ sudo koan --server localhost --virt --system=template --virt-name=test-vm インストールが終わったら、VM を起動して、コンソールにアクセスします。 $ sudo virsh start test-vm $ sudo virsh console test-vm puppet を
CentOS 5.4 から KVM が正式にサポートされたようなので、試してみた。 KVM が動く環境をつくる まずは既存の 5.3 環境から 5.4 にアップグレード。 $ sudo yum -y upgrade 不要になった kernel-xen は削除。 $ sudo yum -y remove kernel-xen kmod-kvm, kvm をインストール。 $ sudo yum -y install kmod-kvm kvm /boot/grub/menu.lst 修正。 title CentOS (2.6.18-164.el5) root (hd0,0) kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vg00/lv_root vga=773 initrd /initrd-2.6.18-164.el5.img 再起動する。 Cobble
ひとつ目は ペパボでの Perl のつかいかた 。id:hiboma と一緒にプレゼンしました。お兄さん、ネタに使わせてもらってすみません&ありがとうございました。後半のロリポの話は、二人で休日も返上してがっつり取り組んだプロジェクトだったので、ぜひ二人で発表したい、と思い、一緒にやらせてもらいました。資料の最新版は id:hiboma が持ってるので、そのうちアップしてくれると思います。 ふたつ目は Danga::Socketの非同期処理の仕組みとPerlbalで非同期処理するプラグインを書く方法 。英語版資料 と 日本語版資料 を slideshare にアップしています。 また、プラグインのコードは、プレゼン中は概要しか紹介できなかったので、実際に動くサンプルを github にアップしています。Perlbal::ClientProxy のパッチと設定ファイルも合わせて置いてあります
ペパボでは以下の2つのサービスで開発者を募集中です。 Color Me Shop!pro 30days Album 併せて開発アルバイトも募集中です。 詳しくは募集要項をご確認ください。 募集要項にはありませんが、採用された方にはドクターペッパーチェリーを差し上げます。合い言葉は「ドクターペッパーチェリー飲みたい!」です。僕との面接時に必ず声に出して言ってください。
このところ、ほとんどエントリ更新してませんが、それは、ナウでヤングなレンタルサーバー ロリポップ!のインフラ再構築 で多忙だったからです。(それだけではないですが。) というわけで、ブログエントリをほとんど書いてないので細切れにもなりようがないのですが、ロリポ含めて、ペパボが提供するサービスの中で、Perl がどのように使われているのかという話を id:hiboma と一緒に YAPC::Asia 2009 でさせていただくことにしました。 また、それとは別に、以前からの関心事であった、Perlbal で非同期処理するプラグインを書く方法についても、ベースとなる Danga::Socket の説明も含めて、お話したいと思います。 YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。すでにチケット販売も始まったので、興味のある
ファイルのミラーリングツールとしては rsync が最も使われていると思いますが、差分チェックの負荷が大きく、できればつかうのやめたいなー、と思っていたところ、Software Design 2009年8月号 に lsyncd というツールが載っていて、お、これはと思って見てみたのですが、仕組みとしては inotify + rsync なので、結局は rsync を裏で呼び出していて、差分チェックの呪縛からは逃れられません。 inotify でファイルの更新イベント受け取ってるんだから、さらに rsync で差分チェックする必要はないじゃん、と思うわけですが、なんらかの理由でイベントが受け取れない可能性もあるため、二重チェックした方が安全なんでしょうね。 でもやっぱり余分な負荷はかけたくない、ってことで思いついたのが、inotify で更新イベントを検知したファイルを、makuosan の
Apache モジュール界のスイスアーミーナイフこと mod_rewrite の中でも、最も何でもありな rewrite ができるのが、RewriteMap での prg タイプによる外部プログラム実行ですが、こいつは外部プログラムがひとつだけ常駐し、httpd と標準入出力を介してやりとりする、という形なので、並列処理させることができません。これは rewrite 処理するときにデータベースへ問い合わせるなど、I/O ブロッキングが発生するような処理をさせたいときには致命的なパフォーマンス劣化を引き起こすことになります。 これを解決するためには、Apache モジュールの中で望みの rewrite 処理をさせるようにすればいいのでは、と思い、RewriteMap にある int タイプに好きな internal function を追加できればいけるんじゃないないか、と考えたものの、mo
LDAP でのノード管理 Storing Node Information in LDAP の超意訳。あと、puppetrun と LDAP を組み合わせて実行した場合の注意点など。 目次LDAP でノード管理するための設定schema ファイルのインクルード ノードエントリの LDIF puppetmasterd.conf の設定puppetrunpuppetrun と LDAP ツリー構造の関係 puppetd から アクセスがあった場合の挙動 LDAP でノード管理するための設定 schema ファイルのインクルード OpenLDAP の場合、slapd.conf に以下の様に記述。 include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/
Wassr で ZIGOROu さん や hidek さん とやりとりした内容をまとめてみます。 CPAN モジュールの rpm パッケージ作成なんですが、自分はRPM::Specfile に付属している、cpanflute2 を基本的に使ってます。 cpan2rpm の方がメジャーだとは思うんですが、オリジナルのダウンロード用FTPサイトが接続できないのと、吐き出す SPEC ファイルが微妙な感じがするので、なんとなくイヤで使ってないんですが、それ以外はそんなに明確な理由もなく、cpanflute2 の方を使ってます。 ただ、cpanflute2 には以下の問題点があります。 依存関係を自動的に解決してくれない(これは cpan2rpm も同じ) モジュールの tar ball を自分で取得しないといけない(cpan2rpm はsearch.cpan.org から取得してくれる) なので
Puppet 作者 Luke Kanies 氏のブログエントリ にて、Puppet の競合となる Chef というソフトウェアについて触れられていた。 ソフトウェアのポジション的にも、使われている用語的にも、かなり Puppet を意識している模様。開発言語が Ruby という点も Puppet と同じ。 Luke 氏としては、Puppet を散々使っていながらあまりコードに貢献することなしに、新しいプロジェクトを立ち上げるってどうなのよ、とか、競合が存在するのはいいことなんだけど、 そんなたくさん競合がある分野じゃないんだから、もっと色々話してくれてもいいのに、といった不満があるみたい。 また、名前が SEO 的にまずいよね、自分もそれで苦労した、といったことや、Puppet が外部 DSL なのに対し、Chef は内部 DSL なんだけどそれってどうなのよ、的なことも書いてますね。自分
本当に15分で Remedie を始めるための資料 overlast さんのこれから15分で Remedie を始めるための資料 に即発されて書いてみました。こっちは CPAN モジュールをインストールする時間も入れて15分。ただし限定された環境のみ。 Remedie 用に CPAN モジュールの RPM パッケージ作ったので、これプラス Puppet を利用します。ただし、RPM パッケージを CentOS 5 x86_64 でビルドしてるので、この環境限定。SRPM はあるので、他の環境の方はこいつをビルドして使ってください。 まずは Puppet をインストールするための yum リポジトリ設定。以下の内容で /etc/yum.repos.d/dlutter.repo を作成。 [dlutter] name=lutter baseurl=http://people.redhat.co
ずいぶん間があいちゃいましたが、OSS だけでスケーラブルなストレージを安価に構築する方法 #4 のつづき。今回は DM-MP により束ねられた仮想的なブロックデバイス(/dev/mapper/mpath0 と /dev/mapper/mpath1)を、更に CLVM でひとつの論理ボリュームにし、GFS2 でフォーマットした後、実際にマウントしてみます。今回が最終回です。 CLVM のインストールと設定 client0, client1 双方でインストールと設定。 $ sudo yum -y install lvm2-cluster /etc/lvm/lvm.conf を編集し、locking_type を 3 に設定。 locking_type = 3 clvmd を起動。 $ sudo /etc/init.d/clvmd start 物理ボリューム/ボリュームグループ/論理ボリュー
naoya さんからもお祝いを頂きました はてな CTO の naoya さん からもお祝いをいただきました。しかも10箱(240缶)も。naoya さん、ありがとうございます! 240缶のドクペを前に満足げな様子。 なんとなくポーズをとってみる。 今回も pplog さん が撮影だけじゃなく、ネタ画像つくってくれました。いつもありがとうございます! Attachments 00.jpg (119.4 kB) - added by miya on 11/26/08 01:20:47.01.jpg (123.1 kB) - added by miya on 11/26/08 01:20:52.02.jpg (120.5 kB) - added by miya on 11/26/08 01:20:57.
ペパボの上場承認のお祝い、ということで、ひろせさん よりドクターペッパーを頂きました。 朝会社に来てみると、やけにでかい Amazon の段ボール箱が机の前にあり、空けてみたところこんな物体が入ってました。 大きさを比較するために自分で持ってみたところ。 ラッピングを外してみると。 箱の中身。 というわけで、僕へのドクターペッパープレゼント数ランキングでは、今までトップであった弊社代表取締役社長家入(10本)を軽々と突破し、ひろせさんが25本でダントツの一位となりました。(今回の24本+KLab勉強会での1本。) ちなみに、現在のドクターペッパープレゼントランキングは下記のとおり。 1 ひろせさん 25本 2 弊社代表取締役社長 10本 3 Xen Summit 2008 Tokyo 3本(フリードリンクとして提供されたものからいただいた数) 4 overlastさん 1本(たしか
Xen Summit 2008 Tokyo で発表した、「Operating Xen domains through LL(Perl/Python) with libvirt」の資料を SlideShare にアップしました。 libvirt という仮想化システムを操作するためのライブラリがあるんですが、それをつかって Perl/Python で Xen を管理するプログラムを書く、ということにフォーカスした内容です。 Perl/Python での libvirt プログラミングだけではなく、libvirt そのものの概要やアーキテクチャ、Avahi という mDNS 実装との連携で、libvirtd が動いているホストを自動で発見する Perl コードのサンプル、Func の virt モジュールは裏で libvirt を使ってる、といったような内容が含まれています。 Xen Summi
関西オープンソース 2008 で発表した 30days Album の裏側のプレゼン資料をSlideShare にアップしました。
OSS だけでスケーラブルなストレージを安価に構築する方法 #4 OSS だけでスケーラブルなストレージを安価に構築する方法 #3 のつづき。今回は Device-Mapper Multipath をつかって、DRBD によりミラーされている2つのブロックデバイスを、仮想的にひとつに見えるようにします。 まずは client0 と client1 に device-mapper-multipath がインストールされていなければ、インストール。 $ sudo yum -y install device-mapper-multipath /etc/multipath.conf を修正。デフォルトでは blacklist の devnode に * が指定されていて、すべてのデバイスに対して無効になっているので、blacklist をコメントアウト。 # Blacklist all devic
OSS だけでスケーラブルなストレージを安価に構築する方法 #2 のつづき。今回はストレージサーバ側で GNBD によりブロックデバイスをエクスポートし、クライアント側でインポートするまでの手順を紹介します。 ストレージクラスタ 用途的にはクラスタリングする必要はないのですが、GNBD でエクスポートする際に、cman(Cluster Manager) を動かす必要があるため、まずは cman をインストール、設定、起動して、ストレージクラスタを構成します。 といっても、クラスタリングは本来の趣旨とははずれるので、設定は適当。 まずは storage0a と storage0b をクラスタリング。最初に storage0a で cman をインストール。 $ sudo yum -y install cman storage0a で ccs_tool を実行し、/etc/cluster/cl
OSS だけでスケーラブルなストレージを安価に構築する方法 #2 OSS だけでスケーラブルなストレージを安価に構築する方法 #1 のつづき。 Xen インスタンスの作成 ここは詳しく解説しません。好きなように作成してください。自分は Cobbler/Koan を使ってます。インスタンスは6つ作成。 client0, client1(ストレージをマウントするインスタンス) storage0a, storage0b(ストレージを構成するインスタンスセットその1) storage1a, storage1b(ストレージを構成するインスタンスセットその2) 全体的な構成概要については、前回のエントリ を参照してください。 エクスポート用ブロックデバイスの作成 storage[01][ab] 上で、GNBD によりエクスポートするブロックデバイス(ディスク)を作成。 ディスクイメージを作成。テスト用
OSS だけでスケーラブルなストレージを安価に構築する方法 #1 OSS だけでスケーラブルなストレージを安価に構築する方法 #0 のつづき。 サーバ構成概要 TLUG 発表資料 で触れた、全体的な構成のおさらい。構成図は以下のような感じ。 この構成について説明すると、以下のようになります。 DRBD により、2台一組でブロックデバイスをミラーリング /dev/gnbd0 と /dev/gnbd1 がセット /dev/gnbd2 と /dev/gnbd3 がセット GNBD でブロックデバイスをエクスポート /dev/gnbd0, /dev/gnbd1, /dev/gnbd2, /dev/gnbd3 がネットワーク越しに見える クライアント側で GNBD でエクスポートされたブロックデバイスをインポート /dev/gnbd0, /dev/gnbd1, /dev/gnbd2, /dev/g
OSS だけでスケーラブルなストレージを安価に構築する方法 #0 TLUG Meeting 2008/09 で発表した How to build a scalable storage system with OSS なんですが、発表では概要しか触れてなくて、じゃあいったいどうやって構築するのよ、という部分が全然ないので、ぼちぼちこのブログで書いていくことにします。 で、スケーラブルというだけだと曖昧なので、以下のような要件を満たすものを、スケーラブルなストレージと想定することにします。 特殊なソフトウェアを必要とせずに、OS からファイルシステムとしてマウントできるもの。なので MogileFS、Hadoop Distributed File System、Google File System 等は対象外。(FUSE 使えばやれないこともないけど…) 容量をオンラインでダイナミックに追加で
How to build a scalable storage system with OSS TLUG Meeting 2008/09 で話した、How to build a scalable storage system with OSS のスライドを slideshare にアップ しました。 英語で初のプレゼンってことで、途中言葉が出てこないことがあったり、英語で質問された内容がうまく聞き取れなかったり、元々開始が遅くて押し気味のスケジュールのところ、時間感覚が全然なくてオーバーしてしまい、最後の Edward さんの発表時間がなくなってしまったりと、反省点だらけ。 プレゼンの内容自体は、自分は今こんなこと検討していて、こういう技術について調べてみたんだけど、他にもいいやりかたとか、いい技術とかあれば教えてください、といったスタンスだったんですが、息子の容態がおかしい、と妻から連絡
YAPC::Asia 2008 Tokyo 発表資料をアップしました 昨日のYAPC::Asia 2008 Tokyo 初日のセッションで発表した、「Easy system administration programming with a framework - フレームワークでシステム管理プログラミングをもっと簡単に」の資料を Slide Share にアップしました。 今日はどうしても外せないミーティングのため、午後から YAPC 会場に向かいます。
KLab 勉強会 #4 & Func & Punc KLab 勉強会 #4 で、Func についてしゃべってきました。その時の様子は Ustream でご覧いただけます。また資料は後日 DSAS 開発者の部屋にアップされると思います。 スピーカのために壇上に水が用意されていることはよくあると思いますが、今回は僕のためにドクターペッパーが用意されているというスペシャルな待遇に感激しました。 で、Func についてしゃべった中で、いくつかいけてない点をあげたのですが、特に RedHat 系 Linux にしか対応してない、というところに不満もあり、また、モジュールを Perl で書きたいという思いもあり、じゃあ Perl で実装しちゃえ、ってことで、Punc - Perl Unified Network Controller なるものをつくりはじめました。 今のところプロトタイプでしかないため
Virt-Factory はもう古いらしい。時代は oVirt Puppet Dojo で知り合った方から、Virt-Factory はもうアクティブじゃなくなって、今はoVirt という新しいプロジェクトに移ってる、ということをお聞きして、Virt-Factory のサイトに行ってみたら本当にそう書いてある!Xen が動かせるマシンが調達できたら、本格的に Virt-Factory 検証しよう、と思ってしばらくアクセスしてなかったら、いつの間にやらこんなことに… つーわけで、Virt-Factory は捨てて oVirt の検証していくです。 Installing Instructions を見てみると、パッケージを配布してるわけじゃなく、QEMU/KVM の仮想マシンイメージとして配布されてる模様。まずはこのイメージを動かすところまでやってみる。 検証環境は CentOS 5 x86_
Y コンビネータ を Perl で考えてみる 計算機科学を学んでいる人にとっては今更な話題らしいですが、経済学部出身の自分には目新しい話題なので書いてみます。(といっても、全然知らなかった、というわけでもないんですが。) id:amachang さんのエントリにある最終形のみを Perl で書くとこんな感じかな。 my $Y = sub { my $f = shift; return sub { my $g = shift; return sub { my $m = shift; return $f->($g->($g))->($m); } }->( sub { my $g = shift; return sub { my $m = shift; return $f->($g->($g))->($m); }; } ) }; my $fib = sub { my $f = shift; re
Virt-Factory クライアントをサーバへ登録する 前回に続き、今回はクライアント側の手順です。クライアント側では、必要なソフトウェアのインストールと、サーバへの登録を行います。 クライアントのサーバへの登録は、既に OS がインストールされた状態から行う方法と、OS がインストールされていないまっさらな状態から行う方法の2つがあります。 以下、2つの方法について手順を解説します。これもサーバと一緒で、Fedora 7 で試しています。 既に OS がインストールされた状態から行う方法 SELinux と iptables をオフに とりあえず検証目的なので、こいつらはオフにしときます。手順は省略。 yum リポジトリの設定 これは サーバ側の設定 と同じなので省略。 必要なパッケージのインストール Virt-Factory は仮想サーバの管理を行うためのものなので、当然何らかの
$arch の部分は Fedora 7 32bit だと i686 になってしまうが、リポジトリのディレクトリは i386 なので、修正が必要。64bit だと $arch 部分はそのままでいいかも。 必要なパッケージのインストール 普通に virt-factory-server パッケージを yum で入れると、依存関係で cobbler と koan が一緒にインストールされるのですが、updates にある cobbler 0.6.4 と koan 0.6.3 がインストールされてしまって、virt-factory-server が正常に動きません。なので、virt-factory.et.redhat.com にある 0.6.2 を明示的にインストールしてやります。 $ sudo yum install cobbler-0.6.2-1.fc7 koan-0.6.2-1.fc7 次に、
次のページ
このページを最初にブックマークしてみませんか?
『trac.mizzy.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く