めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

2011-01-01から1年間の記事一覧

Auto configuration of Hadoop instances on Eucalyptus.

This is just a private memo... ;-) Hadoop config files First of all, you should build your own Hadoop AMI with the following config files./home/hadoop/hadoop/conf/core-site.xml <property> <name>fs.default.name</name> <value>hdfs://hdpmgmt01/</value> <final>true</final> </property> /home/hadoop/hadoo…

RHELonEC2でGlusterFSを利用してみる

はじめに Amazon EC2では、Red Hat Enterprise Linux 6(RHEL6)のAMIを時間課金で利用することができます。(利用者は、Red Hatからサブスクリプションを購入する必要はありません。)AWS環境専用のyumリポジトリが用意されているので、yumコマンドで最新のア…

RHEL6.1のKVMでストレージ・ライブマイグレーション

表題の動作確認が取れました。公式マニュアルには手順の記載はありませんが、virshコマンドから実行可能です。2012/10/11追記 残念ながら、この機能はRHEL6では正式サポートされない事が決定しました。この記事ではRHEL6.1を使用していますが、RHEL6.2以降で…

Ticklessカーネルとクロックソースに関するお話

「詳解 Linuxカーネル 第3版」や「Linuxカーネル2.6解読室」などのLinuxカーネル本では、Linuxカーネルの時刻管理について、超絶に要約すると次のように説明されています。 一定の時間間隔(1000Hz)でタイマ割り込みが入る。 タイマ割り込みごとにjiffies変…

GlusterFSの気になるあれこれ

2011/10/23 執筆中。随時、追記していきます。 GlusterFSとは GlusterFSって何?という方は、まずはこちらを参照ください。 Quick Introduction to GlusterFS はじめてのGlusterFS これらを読めば分かるように、GlusterFSを使用すると、非常にシンプルに分散…

RHEL6.0/RHEL6.1のインストールメディアのディレクトリ構成

RHEL6.0までは、HighAvailabilityなどのAdd-Onパッケージ用のディレクトリから、RPM本体がまとめて入っているPackagesディレクトリへのリンクがありました。 # pwd /mnt/iso/rhel60/HighAvailability # ll 合計 5 lr-xr-xr-x. 1 root root 11 9月 23 08:20 2…

anacronふたたび。(「RHEL6で悩ましい諸々」シリーズ)

何の話かというと 微妙な違いではあるのですが、RHEL5とRHEL6では、cronとanacronの関係が若干変わっています。RHEL5を運用していた方は、cronとanacronの関係を cronが実行しそこねた定期ジョブをanacronが代わりに再実行する と捉えているのではないでしょ…

小悪魔ITエンジニアの理論物理学日記 〜 相対性理論入門

あなたの目の前の机に空き缶を1つ置いてください。あなたには、空き缶が1つ見えます。当たり前。でも、1分前のその場所には、空き缶はありませんでした。仮に、あくまで仮に、あなたの横を走り去っていく人が、ふと同じ机の上を見たときに、なぜか、その人…

GlusterFSでHAクラスタ

何をするかというと。 共有ディスクを使わずにDRBDでローカルディスクのデータを同期させて、HAクラスタを組むというテクニックがあります。それはそれでありなのですが、障害発生後の再同期に時間がかかるなど、なかなか運用が大変なのも事実です。で、DRBD…

/proc/meminfoを考える

通りすがりの貴方・・・・/proc/meminfoのあっちの値とこっちの値を足したら、なんでそっちの値と同じにならないの・・・・と悩んだことありますよね?/proc/meminfoは、カーネルが内部的に管理している枠組みでのメモリ情報をそのまま出しているので、残念…

IaaSクラウドを支えるサーバ・インフラ技術の正誤表

クラウドWatchのWebサイトが修正されるまで、取り急ぎ書き記しておきます。第2回:Eucalyptusのストレージ機能■ループバック・デバイスの活用 修正前 # for i in $(seq 8 255); do echo "loop$i" >> /etc/udev/makedev.d/50-udev.nodes 修正後 # for i in $(…

「配列へのポインタ」と「ポインタの配列」の見分け方

はい。どちらでしょう。 int (*hoge)[10] 答えは、配列へのポインタなのですが、(私を含めて・・・)どうしても、ポインタの配列に見えて仕方がない人は、次の手順で構文解析してください。まず、丸カッコでポインタ記号(*)がhogeに縛り付けられているので…

KVMでHAクラスタの機能検証環境を構築

2011/08/04 17:50 クラスタの基本構成まで書いた。 2011/08/05 18:50 サービスリソースの構成も書いた。 「RHCS設計・運用入門」という資料を作るにあたって「そういえば、あの設定ってどういう動きになるんだっけ???」みたいなことをサクッと確認できる…

cgroupsの設定をGUIでぐりぐりしてみました

どっかのデモに使えるかなぁ。。。ということで。ソースはこちら。RHEL6.1で作りました。エラーチェックとかサニタイズは真剣にはやっていないので、本気で利用される方はそのあたりは手を加えてください。tkinterパッケージが必要です。 # yum install tkin…

State MonadでWriter Monadを実装する

似たものを比較することで、いままで気づかなかった新しい知見が得られることがあります。などと、小難しい言い方をしなくても、1つ1つ勉強していてもよく分からなかったものが、2つ並べて勉強すると、よく分かったりすることありますよね。Monadの応用例…

Monadのbind結合則に関する小ネタ

bindの結合則 Monadのbind演算(>>=)の結合則は次の様に表現されます。 (m >>= f) >>= g ≡ m >>= (\x -> f x >>= g)なんで素直にこう書かないの? (m >>= f) >>= g ≡ m >>= (f >>= g) ← 間違いと思ったあなたは、m,f,gの型を考えましょう。 m :: m a f :: a -…

cgroupsによるIO帯域の制限

Kernel 2.6.37で導入された表題の機能が、RHEL6.1にバックポートされています。非常に分かりやすい機能ですので、実験結果を書き残しておきます。(RHEL6.0には入っていませんのでご注意を。) パラメータの説明 ・blkio.throttle.read_bps_device ・blkio.t…

Fedora15生活入門

7月から勤務している会社がオープンソースの採用に非常に積極的で、デスクトップ環境もLinux前提です。そこで、Fedora15をデスクトップ用に使って見たところ非常に完成度が高く、なかなか感銘を受けました。特に好印象なのは、このあたり。(私が最後にデス…

LXC コンテナの CPU 割り当てを変更する GUI

ちょっとしたデモに便利かも、ということで作ってみました。005 と 006 の 2 つのコンテナで無駄ループ(loop005, loop006)を回しています。どちらも CPU Pinning を 1 にセットしているので、CPU1 だけが 100% で振り切れています。ただし、CPU Shares を …

Control Groups (cgroups)

LXC の解説に必要なので、ちょいと cgroups についてまとめておきます。RHEL6.0 前提です。参考資料: RHEL6 リソース管理ガイド Control Groups(cgroups) の概要 cgroups とは 最近の Linux は、あるプロセスの実行を許可する CPU コアの指定など、プロセス…

RHEL6.0 で LXC (Linux コンテナ)

2011/05/29 執筆中。。。 2011/05/31 コンテナの起動まで書きました! 2011/06/06 cgroups の設定例を追加。これでひとまず完成(?) 2011/06/14 cgroups 設定例に /dev/tty* のアクセス権追加どうも時代はコンテナらしい・・・ということで、RHEL6.0 + LXC…

vermagic と modversions に関する覚え書き

カーネルモジュールをロードする際の実行中カーネルに対する整合性チェックの仕組みには、vermagic と modversions の 2 種類があります。 太古の昔は・・・ 古いカーネルでは、モジュールをコンパイルする際に使ったカーネルソースのバージョン・ストリング…

PineSweeper

『Hello, world. の次は Mine Sweeper を書いてみると、その言語と仲良くなれそうか感触が分かる。かも。』と先日つぶやいた折に、Python の Tkinter をちょっと調べる機会があってさっそく作ってみました。環境は RHEL6 の Python 2.6.5 です。Tkinter を使…

Python2.6 でコマンド出力をパイプで順次受け取る方法

意外とどこにも書かれていないようなので、メモしておきます。 #!/usr/bin/python from subprocess import * output = Popen( [ "vmstat", "1", "10" ], stdout=PIPE ) while True: line = output.stdout.readline() if not line: break print line 下記の方…

32core CPU / 160GB Memory サーバと RHEL6 KVM で 100VM 起動してみました。

通りすがりのマシンルームに 32core CPU / 160GB Memory のサーバが 2 台と 10TB の SAN ストレージがあったので、おもむろに RHEL6 の KVM + RHCS でクラスタを組んで 100VM 起動してみました。 本当にそんなサーバがあるの? ありました。 # cat /proc/cpu…

プロのためのLinuxシステム・ネットワーク管理技術

「プロのための Linux システム・ネットワーク管理技術」 の出版が決まりました。5月下旬に発売の予定です。(前書 「プロのための Linux システム構築・運用技術」 のネットワーク編にあたります。2 冊セットで読んでいただけると幸いです。)各章の概要は…

Haskell ユーザがおもむろに OCaml を使うとどうなるか実験してみました

・Haskell レベル:「ふつうの Haskell プログラミング」とか「Real World Haskell」を読んで Hine Sweeper を書いてみたレベル。 ・OCaml レベル:1週間前に OCaml プログラミング入門 を読んだだけ。という人間(というか私のことです)が適当に Web 上の…

腕に覚えのあるエンドユーザデバイス・プログラマ/インフラ・エンジニアの方へ

「ガ島通信」の藤代さんから「助けあいジャパン ボランティア情報ステーション(VIS)」の活動についてお話を伺う機会があり、「VIS が RSS/XML で公開している『一般ボランティア募集情報』を展開するためのアプリケーション/Web サイト/Blogパーツなどな…

Perl Tips for Quick Hack.

「Perl で取り急ぎXXXやれないかなぁ。。。」という際に使える Tips を徒然に書いてみます。みなさんにお勧めするというよりも「私はこうやっている」という紹介 + 自分のための覚え書きです。ディストリビューション依存はあまりないと思いますが、一応…

Perl スクリプトから取り急ぎ Tweet する方法

いろんな所に書かれている情報ではありますが・・・。実際に使って便利だったので、まとめておきます。 Net::Twitter::Lite の導入 CPAN から導入できます。 # cpan Net::Twitter::Lite /usr/lib/perl5/5.8.8/CPAN/Config.pm initialized. CPAN is the world…