Category Archives: VPS・Cloud

Here Comes A New Challenger ?

Recently, I found this article. “KUSANAGI for SAKURA CLOUD“. Speaking of “KUSANAGI”, it’s response speed! Don’t you think? When going to KUSANAGI’s website, we can see the response speed. Let’s take a look at KUSANAGI’s website. Response speed is displayed in the upper right corner of a page. When I visit to response speed is “0.005s”. It’s amazing. In fact, I’m a user of “the Sakura Cloud”, too. I have an environment in the server is Debian, Nginx and HHVM. I try to check the Kibana so that I confirm response speed of my website. answer: GET /?p=5604 HTTP/1.1 200 MyIPaddr 2015-10-12T23:03:42.000+09:00 0.076 It’s is 0.076s. Well, I think that […]

OpenStackのアーキテクチャを見てみる

まずは書き出して眺めてみよう OpenStack.orgのサンプルアーキテクチャを参考にします こないだの記事と合わせて読んでなんぼになります。 まずはNeutronを用いた最小のサンプル コンピュートノード KVM Open vSwitch Compute Networking ML2 Plugin Networking Open vSwitch Agent ネットワークノード Open vSwitch Networking ML2 Plugin Networking Open vSwitch Agent Networking L3 Agent Networking DHCP Agent Networking Metadata Agent コントローラノード SQL データベースサービス Message Queue Network Time Service Identity Image Service Compute Management Network Management Networking ML2 Plugin では続いて前回参考にしたサンプルケースから、各ノードにインストールしたパッケージを並べて見まする コンピュートノード Nova:Nova-compute-quem Neutron:neutron-plugin-ml2 neutron-plugin-openvswitch-agent Ceilometer:ceilometer-agent-compute ネットワークノード Neutron:neutron-plugin-ml2 neutron-plugin-openvswitch-agent neutron-l3-agent neutron-dhcp-agent Open vSwitch:openvswich-switch vlan bridge-utils コントローラノード MySqlServer RabbitMQ Server Memcached MongoDB Keystone Nova:nova-api nova-scheduler nova-conductor nova-spiceproxy nova-consoleauth Glance:glance-api glance-registry Cinder:cinder-api cinder-scheduler cinder-volume Neutron:neutron-server Ceilometer:ceilometer-api ceilometer-collector ceilometer-agent-central ceilometer-agent-notification ceilometer-agent-evaluator ceilometer-alarm-notifier Heat:heat-api heat-api-cfn heat-engine Horizon 並べてみるとこんな感じです。 次はOpenStack.orgに戻って、レガシーネットワーク(Nova-Network)を用いた最小構成アーキテクチャです。 コンピュートノード KVm Compute Compute Networking コントローラノード SQL Database service Message Queue Network […]

OpenStackを動かしてみよう

OpenStackって?? OpenstackはIaasクラウド環境が構築できるOSSです。Iaasクラウド環境というと、出来上がった物理サーバーが1台ポンとあれば、そのサーバースペックに合う程度の数台のネットワークが構築できます。 ちょっと作り手の言い方に近いですかね。ちょいと利用側寄りの言い回しにすると、こんな環境が欲しいな〜、ボタンをポチッとな!とすると、開発が予め用意しておいた環境がドーン!と出来上がります。 インフラ事業者のクラウドサービスってそんな感じですよね。 ドーンといえばDockerですが、ググってみると複数のDockerでソフトウェアネットワークを構築できるWeaveってのもあるようですね。 複数のDockerサーバで独自ネットワークを構築する「Weave」 Openstackじたい企業レベルでも使われていますし、サンプルの設定ファイルを公開されているページもあるので個人ユーザーレベルでも環境構築はできますし、なによりインフラの勉強にもとてもとてもいいものです。 とてもとてもいいものです。と言いながらも、以前に弄ったときよりも少しばかり敷居が高くなった感じがしました。というのも〜と続けたい所ですが、まったく意味が分からない文章になりそうなので、何故かということをこれから順を追って説明します。 前回にOpenStackを弄った時と今回の違いについて何点か 前回、OpenStackを弄ったのは2013年の12月頃のようでした。なつかしや。 Openstack リリース履歴を見てみると Grizzly   2013年4月4日 Havana   2013年10月17日 Icehouse  2014年4月17日 havanaが既にリリースされていましたが、日記にアップしていたのはGrizzlyでした。 その時は Keystone Glance Cinder Nova Horizon という5つのコンポーネントと1つのノードというオールインワン構成で、ちょっと例えるとKVMで構築したVPSにちょっとしたネットワークが使えまっせという程度のもので、ネットワークまわりにはNova-networkというものを使っていました。 今回使ったIcehouseというのがNova-network非推奨ということで、上の5つ以外のコンポーネントである Neutronというコンポーネントを使うことを推奨しています。 ここでコンポーネントについて少し補足します。なんのこっちゃですよね。 コンポーネントについて :Nova → Compute Service Iaasのオーケストレーション。ってことですが、インフラの設定・管理の自動化を担っているところにあたり、仮想VMの管理を担当しています。 サポートするハイパーバイザには、KVM、LXC、QEMU、UML、VMware vSphere、Xen、Hyper-V、BareMetalがあります。 ほぼほぼ網羅していますね。 :Cinder → Block Storage ストレージのコントールと管理をしてます。 LVMだと少し空きを作ってVGを作ればOKなので、LVMで作成するのが楽かなと。 :Glance → Image Service 仮想OSイメージを管理します。扱えるイメージについて vhd  vmdk vdi iso qcow2 aki ari ami 最後の3個はAmazonのものです。isoは生のディストリと同じで、ほかはパッケージですね。 :Keystone → Identity Service ユーザー管理、各コンポーネントへの認証・権限などの管理をします。 トークンです。 :Horizon → Dashboard webフロントエンドを提供します。 いわゆるユーザーインターフェースですが、ここはユーザーが自由に作れるそうです。 Ubuntu独自のものもありますが、参考サイトでは削除していました。 続いて今回増えたもの :Neutron → Network Service 仮想ネットワーク(SDN)の管理・提供です。 SDNについては全く知識もないので、今回苦戦した原因でもありますね。 こんな風に色々な知識が必要となってきます。 その他の違う点について さきほど、前回OpenStackを弄った時は、5つのコンポーネントと1つのノードでと書きました。 今回は1つのノードでの構成での構築が全く上手く行かず・・・。 断念して、結局マニュアルに沿った構成で、3つのノードをバーチャルボックスで用意しました。 うう・・。 コントローラーノード: 1 CPU、1GB メモリ、10GB ストレージ ネットワークノード: 1 CPU、512 MB メモリ、10GB ストレージ コンピュートノード: 1 CPU、1GB メモリ、10GB ストレージ という構成になっています。 物理サーバーを3台上記のスペックでというなら分かりませんが、今回はバーチャルボックスを使ってゲストOSを3台用意して、ホストPCのスペックの都合上、サンプルの環境からも大幅に下回るスペックになっているために正直重くて検証レベルにしか使えませんでした。 検証環境 ホストOS Ubuntu 14.04 i3 3.10GHz 4Core Mem 4GB ゲストOS 1 コントローラノード Ubuntu 14.04 i3 3.1Ghz 1Core Mem 1GB 2 ネットワークノード Ubuntu 14.04 i3 3.1Ghz 1Core […]

Jailを試してみよう 準備編

JailはFreeBSDで開発されている仮想化環境で、別に新しくもなく昔からあるものです。 名前だけは前々から知ってましたが、とくに何もすることもなくスルーでした。コンテナ型ってのも最近知ったくらいです。 それも、ここ最近のDocker人気でいろいろ調べていたときに知ったのでした。 いきなりJailに入るのもいいですが、せっかくなのでFreeBSDのインストールからおさらい。 基礎は何回やってもいいと思うし、インストールからのっけてやろうと。 気分的にVMwareでやるのではなくて、空いてるPCでやろうと思います。 そう、気まぐれです。 それにしても、この光学ドライブがガコガコ鳴ってインストーラーを読み込んでいって、作業時はHDDがカリカリと読み書きする感じがダイレクトに伝わってくるのは、仮想環境では味わえない事だが、ええのう。久しぶりだとなおさらええのう。 ※ええのう → いい感じ  ではインストールですが 今回はJailの環境がちょっと良くなっているという事だったので9.1にしました。 9からはsysinstallではなく、BSDinstallというものに変わりました。BSDinstallになって、楽にというか簡単にというか、そういった変化を感じます。 まずはそのままエンターで Boot [enter] で通常のブートをします。 ※直インストールなので画像は無いです。 Install/shell/Live CD と出てきますので、Installを選択。 Keymap Selectionでは日本の106を選ぶので、Yesを選んでJapanese 106にします。Jを押すとそこまで飛んでくれるので楽です。 Set Hostname ホストネームの入力ですが、FQDNを入れるようにとのこと。 完全修飾ドメイン名で入れるようにとのこと。 続いて配布物の選択。 表示されている5個と隠しメニューと言いますか、デフォルトでbaseとKernelがインストールされます。ここはPortsだけ選びました。 次がパーティションになりますが、Linuxで言うところの全部使うの場合は、Guided・Entire Disk・Finish・commitでOKです。 自分で振り分けたい場合はGuidedではなく、Manualに進みます。 ここでシステムがインストールされます。 終わったら、rootのパスワード設定をして、ネットワークの設定をします。 IPv4をYes、DHCPはNoで手動で固定IPを入力。v6もYes、IPv6 SLAACもYesを選択しました。 んでDNSですが、ここではCTU(デフォルトゲートウェイ)のIPアドレスを入れます。 タイムゾーンは、最初の問いはNo!、続いてAsiaのTokyoを選択。いや、Japanだった。 次はサービスの選択です。 ここではsshdだけ選びました。 Enable crash dump ? はYesを選びました。 ユーザーの追加ですが、後からスクリプトで入れたらいいやと思ったのでNo! 最終確認ですが、この辺は前のsysinstallにもあったかな。とくに変更はないので、そのままExitします。続いてManual Configrationとでますが、Noで。 Rebootを選んで、CDを抜いて起動を待ちましょう。んー、普通逆だな。 慌ててCDを取り出そうとするとリブートの時に光学ドライブが閉まって指が挟まるから気を付けよう。 インストールが終わったよ 多分大丈夫と思いますが、ifconfigなりCTUにPingしたりとかで確認してみて、IPが取れてなかったら # /etc/netstart してみよう。 コンソール画面で作業するのはめんどくさいので、ネットワーク回りが問題なければさっさとsshを使えるようにして切り替えちゃおう。 # vi /etc/ssh/sshd_config # PermitRootLogin no   ← コメントアウトしてます。 PermitRootLogin yes # PasswordAuthentication no ← コメントアウトしてます。 PasswordAuthentication yes ひとまず、Linuxでいうところの最初の yum update にあたるところをやっときます。 ターミナルソフトからrootでログイン。 とりあえずアップデートしようとするとこんなエラーがでるので (前からこんなの出たっけ??) # freebsd-update install Installing updates…install: ///usr/src/crypto/openssl/ssl/s3_cbc.c: No such file or directory  done. 出ちゃったらディレクトを作成してもう1回。 # mkdir -p /usr/src/crypto/openssl/ssl/ # freebsd-update fetch # freebsd-update install Ports Collectionを取得して展開する。 # portsnap fetch extract portupgradeをインストール。 # cd `whereis portupgrade […]

pvpanicを試してみる

今は昔、去年7月のSoftwareDesginに載っていたkernel3.10からの新機能で、pvpanicというやつの記事を見たときにわりと衝撃を受けて、いつの日か使ってやるんだ~!と思いながらも別に何もしない日が続いていた。 自宅サーバーはKVMでVPS化しているので、また最初から設定をやり直すのがめんどくさいからこのままにしておきたかったのだけど、仕方ないのでアンインストール アンインストール。 最高のリアルが向こうやってきたのだ。 今回はいつもと大きく違ってて、情報が全然ないという事なんだが、まぁやってみるかと。 検証は失敗なのですが、新しい事も分かったので作業メモ的に残しておきまう。 まずは、OSのインストール作業をします。 はい、出来たのがこれ。 # cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) # uname -ri 3.10.0-123.el7.x86_64 x86_64 # lsmod | grep kvm kvm_intel             138567  0 kvm                   441119  1 kvm_intel 今回(CentOS7)からは、KVMのモジュールが最初からロードされているようだね。 KVMの準備だけど、CentOS7で必要なものとか検証しているひまはないので、過去の日記を参照して全部いれちゃえ。 # yum groupinstall Virtualization “Virtualization Client”\ “Virtualization Platform” “Virtualization Tools” # yum install gcc kernel-devel zlib-devel pciutils-devel pciutils-libs\ glib2-devel bridge-utils どうやら、うまく入ったようです。 さてここで、PVPANICに必要なものですが。 ・QEMU 1.5以降 ・Linuxカーネル3.10以降 ・seabiosのgit版 基本はこの3点らしい。 あとそろっていないのは、seabiosのgit版なので用意をしないといけないのだが。 seabiosだって?? もちろんseabiosってなんだ?って状態だよ! seabiosのインストールにいってみよう。 # yum -y install iasl  # git clone git://git.qemu.org/seabios.git seabios.git # cd seabios.git # make と、ここでエラーが出るんだが、makeできないのはseabiosのバグらしい。 [root@testserver seabios.git]# make   Building ld scripts Version: rel-1.7.5-41-g3aa31d7-20140729_192734-testserver Traceback (most recent call last):   File “./scripts/layoutrom.py”, line 685, in <module>     main()   File “./scripts/layoutrom.py”, line 629, in main […]

redmineのDockerfileがやっとできた

ちょっとだけこなれてきたのでwordpressに続いて、今度はわりと自力でredmineのDocerfileを作ってみた。イメージならDocker Hubにあるんだけど、やっぱりエンジニアを目指すなら自分で作ってみたいじゃない。 CentOSにredmineを入れるHow to で、手順のベースにしたサイトはこちら redmine.jp Blog さん 今回ももちろん色々とググって試行錯誤しながら作ったんだけど、見ているのが自分のサイトと気づかずに自分のサイトを読んでいたマヌケちゃんは今回が初めてかも・・・。 試行錯誤のようなDockerfileなので見た目とかプロトタイプ的なところはありますが、とりあえず公開。 環境から  $ cat /etc/os-release NAME=CoreOS ID=coreos VERSION=386.1.0 VERSION_ID=386.1.0 BUILD_ID= PRETTY_NAME=”CoreOS 386.1.0″ ANSI_COLOR=”1;32″ HOME_URL=”https://coreos.com/” BUG_REPORT_URL=”https://github.com/coreos/bugs/issues”  $ docker version Client version: 1.1.1 Client API version: 1.13 Go version (client): go1.2 Git commit (client): dc62f3c Server version: 1.1.1 Server API version: 1.13 Go version (server): go1.2 Git commit (server): dc62f3c Dockerfile $ cat docker-redmine/conf/Dockerfile FROM centos:centos6 MAINTAINER takeken # yum + repo RUN yum install -y wget RUN yum install -y sudo tar openssh openssh-clients openssh-server syslog httpd httpd-devel mysql-server vim python-setuptools RUN sleep 60 RUN wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ;\     wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm ;\     wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm ;\     rpm -ivh epel-release-6-8.noarch.rpm remi-release-6.rpm rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm […]

サーバー建てたら2分でWordPress

前回のsupervisorを試した結果も踏まえて、Dockerfileを作成しました。作成したものをbuildしてできたイメージをし、コンテナを作るところをやります。 参考サイト memorycraft Dockerってなんじゃ?(docker+nginxで複数コンテナにWEBサーバーをたてる) qiita  yujiod 各種ミドルウェアをSupervisorで管理する Dockerの用意に2分以上かかるだろ~って突っ込みは、玄関を開けてから冷蔵庫を開けて準備するまでに2分以上たってるだろ~という突っ込みと同じなのでスルーです。 では先に簡単に流れを書きます。 まずはファイルを用意します。 環境ですが、OSはcoreosでdockerは1.0.1です。  $ ls -l docker/conf/ -rw-r–r– 1 core core 1607 Jul 21 10:08 Dockerfile -rw-r–r– 1 core core  441 Jul 21 10:08 set.conf -rw-r–r– 1 core core 1226 Jul 21 10:08 wp-config.php ビルドします。  $ docker build –no-cache –rm -t takeken/wp_data Docker/conf $ docker images REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE takeken/wp_data         latest              feebd5fa6ec7        37 seconds ago      469.4 MB 出来上がったイメージからコンテナを動かします。 $ docker run -p 80 -p 22 -p 9001 –name wp_000 -d takeken/wp_data /usr/bin/supervisord c4cd6700804fd1c1b2980c265091c4b2ddcd9b407ba8af6bca00eb7c5f1937e6  $ docker ps CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS              PORTS                                                                   NAMES c4cd6700804f        takeken/wp_data:latest   /usr/bin/supervisord   3 seconds ago       Up 2 seconds        0.0.0.0:49185->22/tcp, 0.0.0.0:49186->80/tcp, 0.0.0.0:49187->9001/tcp   wp_000 さて、慣れた人ならこのまんまでは実用できないのが分かると思いますが、今後、バーチャルホストのようにドメインもしくはサブドメインを割り当てて、個別にアクセスできるような試みをするつもりなので、今はこれでOKです。 […]