kikumotoのメモ帳

インフラ・ミドル周りを中心に、興味をもったことを適当な感じで。twitter : @takakiku

Apacheのログで、リクエスト時間をマイクロ秒で表示する方法

ApacheのLogFormatで %t を指定すると、リクエストの時間が表示されますよね。複数のサーバのログを集めて結合すると、時間が秒レベルなのでソートしても微妙に順番が変になったりします。なので、秒より精度の高い時間を出力しようと思いました。 使ってい…

kickstartのpostscript処理をコンソール出力するメモ

KVM

kickstartのpostscript処理ですがリアルなマシンだと 検閲Tech: Anaconda Kickstartの%postスクリプトの動作を観察する TipsAndTricks/KickStart - CentOS Wiki にあるように、chvt すればいんだけど、KVMに仮想マシンにインストールするときはこれでは動作…

SpotInstance + ENI(固定IP)in VPC で財布に優しいテスト環境を作る

AWS

久しぶりの更新です。Amazon VPCのいいところの1つは、固定プライベートIPを設定できるところですよね。 で、ちょうど固定プライベートIPで作業する必要があったので、オンデマンドm1.smallをVPC内に数インスタンス起動してたのですが、そこそこ費用がいっ…

Amazon VPCに接続するためのVyatta向け設定ファイルを作成するWebツールを作ってみました

さくらのクラウド(β)とAmazon VPCをつなげるテストをいろいろやっているのだけど、毎度Vyattaの設定ファイルとかを書くのが面倒なので、Amazon VPCからダウンロードする設定情報をVyatta向けに変換するツールを作成してみました。ローカルで使うのであれば…

Diablo版Swiftインストール:ストレージサーバ編

前回、前々回からの続きで最後にストレージサーバを構築したときの手順をメモしておく。 構成とOS環境 keystone やプロクシサーバと同様。 パッケージインストール ストレージサーバに必要なパッケージは以下のようにしてインストールした。 # yum install p…

Diablo版Swiftインストール:プロクシサーバ編

前回の記事 Diablo版Swiftインストール:keystone編 に引き続き、Swift環境として必要となるプロクシサーバを構築した時のメモ。 構成とOS環境 前回の記事の通りであるが、今回はストレージサーバのIP情報も必要となるので、それらについては以下の通り。 ス…

Diablo版Swiftインストール:keystone編

久しぶりにSwiftをさわることなり、以前からバージョンアップもされ、特に認証機能が大きく変わったので、再度インストールを試みたのでそのときのメモ。今回は、認証機能である keystone のインストールについてメモっておく。参考にしたのは以下のサイト。…

EC2にSwiftをインストール

分散ストレージ的なものを探していたら、OpenStackにSwiftというS3的なストレージがあることを知ったので、まずはどんなものか知るためにインストールしてみることにした。そのときのインストールメモ。インストール時に固定IPがあったほうがSwiftの手順に…

さくらのVPSにVyattaを入れて、Amazon VPCにVPN接続

第8回JAWS-UGに参加して、そこで富士ソフトの飯尾さんが話したVPCの話題、面白かったです。ということで、年内にAWS東京リージョンに追加されるはずのVPCを試しおかなきゃ、、、、といっても、ネットワーク装置なんて持ってないので、さくらのVPSにVyattaを…

はじめてのレシピ

Chef Server, Chef Client(Node), Knife Client と一通り環境が揃ったので、All about Chef ... — Chef Docsに従って、Recipeを書いて、Nodeに適応してみる。 Chefリポジトリの用意 cookbookを書いていくあたって、ローカルにChefリポジトリを用意する。こ…

ruby1.9.2でChef-severを動かす

先日書いたさくらのVPSにchef-serverをインストール - kikumotoのメモ帳では ruby は 1.8.6 が使われる。個人的には 1.9.2 の環境の方が都合がよいので、ruby 1.9.2 で chef-server を動かすようにしたときの構築をメモ。基本的にほぼ同様な手順だけど、一部…

Chef ServerにClient/Nodeを登録

昨日書いたさくらのVPSにchef-serverをインストール - kikumotoのメモ帳で作成したChef Serverに、Chefのclietやnodeを登録した手順をメモする。インストール対象はここでもさくらのVPS CentOS5.5 i386環境。client, nodeが何かについてはChefを最速で使いこ…

さくらのVPSにchef-serverをインストール

久しぶりのブログ更新!!サーバを増やすときに各種パケッケージのインストールだけでなく、必要な設定も含めて自動化していきたいと思い、最近はChefを勉強中。chef-serverをさくらのVPSにインストールしたときの作業をメモしておく。さくらのVPSへのchef-s…

CometDを試す

背景はともかく、CometDに興味を持ったのでまずは使ってみることに。Primerのページによると、Maven で scaffold 見たいなものを作れるようになっているが、この日記を書いた時点でのバージョンでは少し出力が異なっていたので、Primer をなぞる形で自分が実…

Android エミュレータの system.img を書き換える。

すっかり間があいていましまったけど、最近 Android をいじり始めたのでそれについてメモを再開。Android エミュレータの /system は adb remount で、書き換えはできるけれども、結局エミュレータを終了すればまた元に戻ってしまう。毎回 adb remount して…

XtreemFS ってのもあるのね。

8/13 に 1.0 がリリースされた XtreemFS っていう分散ファイルシステムもあるんですね。今度調べてみよう。

CloudStoreをバックエンドにしてMapReduce

CloudStore は Hadoop と組み合わせることができ、MapReduce のデータ保持先として利用できる。 Using KFS with Hadoopを参考に試して見た。 Hadoop MapReduce をインストールした場合のサーバの役割は以下のようにした。 ノード名 CloudSotre での役割 Hado…

CloudStoreを使う・Java編:ランダムアクセス

Javaライブラリを使ってランダムアクセスをしようと思ったら、Javaライブラリで提供されるAPIではアクセスできない。JNI 側および C/C++ ライブラリ的にはランダムアクセス可能なので、単にJava側のAPIの提供方法の問題のようである。CloudStore の HDFS に…

CloudStoreを使う・Java編:読み書き

Javaライブラリを使って、CloudStoreに読み書きをする方法をまとめておく。 読み込み サンプルコードは以下の通り。CloudStore の API は、Java New I/O を使うようになっているので、それがらみのコードが多くなってしまっているが、実質的には メタサーバ…

CloudStoreのJavaアクセスライブラリ

CloudStore には Java からもアクセスできるようになっている。 ライブラリのビルドは Ant を使って以下のようにすればよい。KFS_HOME は、CloudStore がインストールされているディレクトリ。 $ cd kfs-0.3 $ ant -Dlib.dir=$KFS_HOME/lib jar 成功すれば、…

CloudStoreを使う・FUSEマウント編

CloudStore では FUSE を使ったマウントができる(http://kosmosfs.wiki.sourceforge.net/UsingWithFUSE)ので、その方法を確認しておく。まずあらかじめ FUSE をインストールしておく必要があるので、以下のような感じで準備しておく。 $ tar xzf fuse-2.7.…

CloudStoreを使う・コマンドライン編

前回までで、とりあえずCloudStoreが起動したので、今回はコマンドラインツールを使ってCloudStoreにアクセスする方法をメモしておく。 前々回のコンパイルにより、コマンドラインツールが /home/kfs/cloudstore/bin/tools にある。 ファイルをCloudStore上…

CloudStoreを動かす

前回でコンパイルが済んだので、今回は動作させるまでをメモしておく。基本的に、Deploying KFS の手順に従っている。 想定しているサーバ構成は以下のような感じ。 ノード名 役割 kfs0 metaserver kfs1 chunkserver kfs2 chunkserver kfs3 chunkserver まず…

CloudStoreのコンパイル

HDFSとは別の分散ファイルシステムであるCloudStoreを試そうとしたときのメモ。 まずはコンパイルに関して。基本的に、http://kosmosfs.wiki.sourceforge.net/HowToCompileに書いてある通りだけど、CentOS5.2 の環境でコンパイルしようとしたときのことメモ…

ローカルからHDFSマウントへのrsync

ローカル領域 -> HDFSマウント領域の rsync をするには、 rsync --temp-dir=/local/path/tmp -avOW --delete local/ /mnt/hdfs/ のようなオプションをつける必要があるみたい。 --temp-dir を指定しないと、HDFS マウント領域上にテンポラリファイルを作成し…

decommission、rebalance

decommission DataNode をクラスタから削除したい場合、前回書いたようにノードを停止してしまえば目的は果たせるけれど、停止により複製数が満たなくなるブロックができてしまい、自動複製されるまでにさらにノードが死んだりしたらデータ喪失になりかねな…

ノードの追加・削除

ノードの追加・削除といった Hadoop の運用面について少し調べてみたのでメモ。 ノードの追加 ノードを追加するにはだいたい以下のような手順となる。 Hadoop のソフトウェアをインストールする。 このとき、hadoop-env.sh や conf/*.xml も設定しておく。 N…

HDFSへのアクセスユーザ

HDFS Permissions Guide を見ると、HDFS では Linux とかで見られるようなパーミッションが設定されるようになっているらしい。そしてスーパーユーザは NameNode の実行ユーザになるらしい。確かに今までは HDFS に対する操作を hadoop ユーザで行ってきたの…

HDFSのマウント

Hadoop Wiki に MountableHDFS というのがあり、HDFS をマウントできるようなことが書いてあるので試してみたので、それをメモしておく。いくつか実装があるようだけど、今回試したのは fuse-dfs というもの。こちらのサイトも参考にさせていただいた。gcc, …

HDFSの読み書き

Hadoop を設定できたので、Java からHDFSにファイルを置いたり、HDFSからファイルを読み出したりする方法をメモっておく。以下で、大きく分けて2種類の方法を書いているけれど、共通な点としてまず、Configuration クラスのインスタンスを用意しておくとい…