めもめも

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

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

OpenStack HeatがCloud-Init / cfntoolsと連携する様子を覗きこむ(その2)

前回、次のような流れを自動化するという話をしました。(1) 上記のカスタマイズスクリプトを渡してDBサーバーを起動する。 (2) DBサーバー内のゲストOSで、DBのセットアップが終わるのを待つ。 (3) DBサーバーに割り当てられたIPを取得する。 (4) Webサーバ…

OpenStack HeatがCloud-Init / cfntoolsと連携する様子を覗きこむ(その1)

参考資料 CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回 Heatとは? HeatはAWSのCloudFormation的な仕組みをOpenStack上で実現するコンポーネントです。単一インスタンスの自動セットアップであれば、カスタマイズスクリプト(UserData)に任意…

OpenStackのPython Client Libraryの使い方をサンプルコードで紹介

何の話かというと OpenStackのPython用Client Libraryは、pydoc程度しかドキュメントがなくて困っていたので、pydocから見える情報をベースにして(勘と経験で)利用方法の参考になりそうなサンプルコードを作ってみました。それぞれのクライアントは、「Cli…

LevelDBの(低レベル)I/O処理構造

何の話かというと LevelDBというのは、組み込み型のKeyValue Storeです。SQLiteのような感じでデーモンを立ち上げずにローカルファイルシステムを使って、KeyValue Storeが利用できます。これをローカルファイルシステムではなくて、GlusterFSのボリュームで…

Using LevelDB over GlusterFS with libgfapi

I created a module with which you can use LevelDB[1] over GlusterFS _without_ FUSE client. This module uses libgfapi[2] which is a native API library for GlsuterFS. It allows applications to bypass the FUSE layer and access GlusterFS volum…

libgfapiの使い方

libgfapiとは こちらの記事の図1にあるように、アプリケーションから直接にGlusterFSのボリュームにアクセスするためのAPIを提供するライブラリです。FUSEマウントせずに、直接にボリュームにアクセスできるので性能向上が期待できます。LevelDBをGlusterFS…

tmpfsでxattrを取り扱うカーネルソースに関するメモ

何の話かというと RHEL6では、tmpfsに対して、xattr(拡張ファイル属性)が利用できません。正確に言うと、security.selinuxなど特定の属性だけが使えて、user.*やtrusted.*などの一般的な属性が使えません。アップストリームでは、3.0カーネルで、一般的なx…

KeystoneのUnscoped TokenとScoped Tokenの違い

何の話かというと ここの説明にあるように、Keystoneが発行するトークンには、「Unscoped Token」と「Scoped Token」があります。流れとしては、最初に、UserID/Password認証で「Unscoped Token」を取得して、その後は、Unscoped Tokenを使って、自分のテナ…

Fedora 18でVNC Server & virt-manager

Fedora 18のサーバーデスクトップ画面をVNC経由で表示して、virt-managerを使用する手順です。KVMの仮想マシンが起動しているとディスプレイ番号が奪われている場合があるので、仮想マシンはすべて停止した状態で作業してください。まずは、Fedora 18を「Gno…

FoldableクラスがfoldMapからfoldrを構成する流れ

某所の「すごいHaskell本」輪読会で「第12章モノイド」を読む予定があり、予習しています。第12章の中で、「Foldableクラスでは、foldMapを用意すれば、foldl/foldrが使えるようになる」との説明があるのですが、foldMapからfoldl/foldrを構成する具体的な方…

Nested KVM環境でOpenStack(RDO/Grizzly)をセットアップ

変更履歴 2013/12/30 仮想マシンでIntel-VTを有効化する手順を追加 Nested KVMを利用して、1台のサーバで、マルチノード構成のRDO(Grizzly)を構築する機会があったので手順を残しておきます。「最短手順でRDO(Grizzly)のデモ環境を構築」で使用したquickrdo…

最短手順でRDO(Grizzly)のデモ環境を構築

構築するデモ環境の全体像 物理NICを2個持つサーバーを用意して、両方のNICを同一のパブリックネットワークに接続します。em1にはIPアドレスを割り当てて、外部から管理接続する際に使用します。SSHでログインしたり、WebブラウザでHorizonを使用する際のIP…

ZipListは本当にMonadから構成できないのか?

先のエントリで、直感的な憶測から『「Monadプローブ結合方式」で、ZipListの演算を実現することはできません』と書いたのですが、本当に不可能なのかじっくり考えてみました。実は、工夫すれば、MonadからZipListを構成できる気がしてきました。。。。(や…

Functor/Applicative Functor/Monadの関係を整理してみる

何の話かというと ほぼ独り言のエントリですが。。。。昨日、某所の「すごいHaskell」輪読会に参加して、Applicative Functorの章を読みました。本の構成としては、Monadより先にApplicative Functorを定義して、その後の章で、Applicative Functorの拡張概…

/etc以下のファイルの変更をこっそりgitでトレースするツール

・・・というと、「それってetckeeperでできるよ」という返答が高確率で返ってくるのですが、etckeeperの場合は、/etc以下を直接、バージョン管理システムの管理対象にして、システム管理者が意識的にコミットする形になります。そうではなくて、たとえば、…

Systemd入門(5) - PrivateTmpの実装を見る

「Systemd入門(4) - serviceタイプUnitの設定ファイル」で、[Service]セクションのオプション「PrivateTmp」を紹介しました。実はこの他にも、ファイルシステムのセキュリティ保護を図るオプションがあります。今回は、これらオプションの紹介に加えて、それ…

Systemd入門(4) - serviceタイプUnitの設定ファイル

この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。今回は、serviceタイプのUnitについて、設定ファイルの…

Systemd入門(3) - cgroupsと動的生成Unitに関する小ネタ

この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。今回は、表題の小ネタを2つお届けします。 cgroups syst…

Systemd入門(2) - Serviceの操作方法

この連載では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明します。今後出てくる予定のRHEL7での実装とは異なる部分があるかも知れませんが、その点はご了承ください。前回は、systemdの基本概念となるUnitの説明をしました…

Systemd入門(1) - Unitの概念を理解する

Linuxの起動処理は、これまでinit/upstartと呼ばれる仕組みで行われていました。Red Hat Enterprise Linux 7 (RHEL7)では、これが、systemdと呼ばれるまったく新しい仕組みに置き換わります。Fedoraでは、すでに先行してsystemdが採用されていますが、この連…

Functorを例として、圏論とHaskellの関係を分かりやすく説明してみるテスト

[参考文献] Haskell/圏論 カテゴリーとは? 「カテゴリー」は、「集合と写像」の概念をより抽象化(簡単化)したものです。おもむろに、図1のように、いくつかの●と、●の間の矢印が集まった図式を考えてみます。 図1 カテゴリーのイメージそれぞれの●は、「a…

『独習Linux専科』サーバ構築/運用/管理 ―― あなたに伝えたい技と知恵と鉄則

2013/08/21追記 技術評論社のサイトに書籍紹介ページができました。目次とサンプルページがありますので、こちらも参照ください。 「『独習Linux専科』サーバ構築/運用/管理 ―― あなたに伝えたい技と知恵と鉄則」の出版が決まりました。今回は、構想段階にお…

Prototype of DCK Server for OpenStack

A new word "Cloud OS" is floating around these days. If you interpret it as a "system to operate computing resources in the cloud", it makes some sense to me. However, it gives me an impression that there could be more direct comparison be…

CPU温度を表示するアクセサリー

自宅のデスクトップをFedora19にしたら、CPU温度を表示するgnome-extentionが使えなくなって悲しかったので、作りました。前提パッケージは多分この程度。 # yum install lm_sensors tkinter tix見た目はこんな感じ。本体は以下。 #!/usr/bin/python # -*- c…

RDOデモ環境を確実に構築する手順(複数ノード編)

2013/11/02 この記事の内容は古くなっている恐れがあります。複数ノード環境の構築手順については、こちらを参照ください。 「RDOデモ環境を確実に構築する手順」で紹介したdemostackを拡張して、複数ノード構成に対応しました。最初に、Nova Compute以外の…

RDOデモ環境を確実に構築する手順

2013/10/24:より簡単に構築したい方は、こちらの記事も参照ください。 最短手順でRDO(Grizzly)のデモ環境を構築 こちらにRDOのデモ環境を構築した際の手順メモがありますが、なかなか一筋縄ではいきません。そこで、できるだけ手順をシンプルするためのツー…

Building "all-in-one" OpenStack Grizzly/OVS demonstration system with RDO

Note: I have two problems in my setup. (2013/06/06) metadata-agent doesn't work well in my setup. This looks the same problem with this. Resolved with Bug 972239 - root.conf.helper should be replaced by get_root_helper. dnsmasq for the sec…

Private notes on Packstack plugin development (4)

GlusterFS configuration example Now let's try a little bit more practical challenge. I will show a sample plugin to configure GlusterFS storage nodes. The following is the general configuration steps of GlusterFS storage cluster.1) Install…

Private notes on Packstack plugin development (3)

Using Puppet modules In the previous example, I used the simple manifest(puppet/templates/motd.pp) which didn't need any additional modules. But in general, Puppet manifests are associated with modules, self-contained bundles of code and d…

Private notes on Packstack plugin development (2)

Global options I'd like to add my first working plugin which configures "/etc/motd" of the target server. This has three options:1) A switch to enable/disable the plugin. 2) IP address of the target server. (Default is localhost.) 3) One l…