Quantcast
Channel: Proxmox –俺的備忘録 〜なんかいろいろ〜
Viewing all 32 articles
Browse latest View live

Proxmox VE 3.1で複数ノードを管理してみた(IPマルチキャスト無効化版)

$
0
0

以前、業務用ルータ(Cisco)を使用してのProxmox VE 3.1のクラスタ構成を構築したが、一般家庭用ルータで成功したので、その備忘。

前回の記事では、Proxmox VE 3.1のクラスタ構成を構築するにあたってルータがIPマルチキャストに対応している必要があったため、対応ルータを使用しての記事を記述していたが、今回の内容はそのIPマルチキャストを無効化してのクラスタ構成化。

クラスタ構成を構築するサーバは以下。

  1. Proxmox110 (マスタ。IPは192.168.0.110)
  2. Proxmox120 (メンバ。IPは192.168.0.120)

作成手順は、前回の内容と被るがそのままを記述していく。

マスタ側でクラスタの作成、IPマルチキャストの無効化

Proxmox110 (マスタ)側で以下のコマンドを実行し、クラスタを作成する。

 pvecm create ProxmoxCluster 
 ※ここのProxmoxClusterは任意のクラスタ名なので、好きなものを指定可能。

作成したクラスタの内容については、以下のコマンドで確認可能。

 pvecm status 

このコマンド実行時に表示される、Multicast addressesのアドレスについては、後ほど疎通出来るか確認するので覚えておく。

次に、前回の手順とは違うとこ。以下のコマンドを実行してIPマルチキャストを無効化する。

 echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

これで、マスタ側の準備は完了。

メンバ側でIPマルチキャストの無効化、クラスタへの参加

次にメンバ側の処理。まずはIPマルチキャストの無効化を行うため、以下のコマンドを実行する。

 echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

上記コマンド実行後、マスタ側でクラスタ作成時に自動生成されたMulticast addressesにPingが通るかを確認する。

 Ping -c 2 239.192.41.93

Pingが通るようであれば、以下のコマンドを実行してクラスタに参加を行う。

 pvecm add 192.168.0.110

実行すると公開鍵を保存するかどうか、マスタのパスワードを入力するよう表示される。
設定がうまく行っていれば、家庭用ルータを使用していても上記画面のように成功する。

設定後の画面がこちら

●Proxmox110

●Proxmox120

マスタ、メンバの管理画面では、ともにクラスタに参加しているノードを確認できる。

以上、IPマルチキャストを無効化してのクラスタ構成でした。

なお、当該設定はIPv6を無効化しているとうまく動かなかったので注意。


USBメモリにProxmox VE 3.1 をインストールしたのでHDDの追加を行ってみた

$
0
0

USBメモリにProxmox VE 3.1をインストールしたので、HDDを追加してストレージとして使えるようにしてみた。

対象となるストレージは「/dev/sda」(USBメモリにインストールしたので、システム領域は「/dev/sdb」)。

まずは、以下のコマンドでフォーマットを行う。

 mkfs.ext3 /dev/sda

フォーマット完了後、マウントポイントとして「/var/lib/vz2」フォルダを作成し、マウントさせる。

 mkdir /var/lib/vz2
 mount /dev/sda /var/lib/vz2

マウント後、ストレージとして使用出来るように管理画面から追加作業を行う。

なお、クラスタ構成を行っている場合はストレージの追加は実際にストレージを保有しているマシンからではなく、マスタサーバから行う必要がある。

マスタサーバの管理画面を開き、データセンターからストレージタブを開く。
ストレージタブ内で追加から「Directory」をクリックする。

ストレージを保有するノードを選択し、「ID」、「ディレクトリ」を記述する。
今回は、全ての用途に使用出来るよう「内容」は全て選択。「共有」にもチェックを入れておく。

これでストレージが追加された。

なお、これは環境に依存するのか不明だがクラスタ環境で増設したHDDにISOファイルをアップロードしようとした場合、以下のようなエラーが表示されアップ出来ない事象がある。

Error 0 occurred while receiving the document.

どうも、このページを見る限りバグ?のようだ。
ISO等をアップロードする場合は、少々面倒だけどSCP経由で上げる方がいいようだ。

Proxmoxでの仮想マシンマイグレーション

$
0
0

仮想マシンのクラスタ構成がうまく行ったので、仮想マシンのクラスタでおなじみ、仮想マシンのマイグレーションを行ってみた。

で、ここでESXiとの決定的な相違点を一つ。

Storage Migrationは出来ない
(厳密には同ノードに搭載されているStorageにはMigration可能)

異なるノード間でのストレージマイグレーションが出来ないとな…
つまりクラスタを行うノードとは別に、ストレージ機器が無いと仮想マシンのマイグレーションは出来ない。機能的に制限がかかるわけではなく、単に仮想マシンの構成ファイルだけ移動して、ディスクイメージは元のサーバに放置という…
自宅でやるにはちょっとハードルが高い…

一応、対処方法としてCIFSマウントをさせたフォルダを各マシンでマウントすることで対応出来そうだが、クラスタメンバが増えると管理が大変になるし、見た目的にもちょっと…となるとiSCSI接続でストレージを見せるかな?

さすがにストレージ機器は存在しないので、その辺の適当なマシンにiSCSIターゲットを入れて各Proxmoxにマウントさせて検証してみた。ProxmoxでのiSCSIターゲットのマウント手法についてはこちらを参照。

まぁ、10GB接続環境なんて無いので、1GBでのネットワークのためディスクアクセス速度は遅くなるかもだけど…

FC接続?何それ?おいしいの?
そんなもん一般のご家庭にあるわけ無いだろ!(怒)

Proxmox110のiSCSIフォルダ

Proxmox120のiSCSIフォルダ

すでにiSCSIターゲットに仮想マシンイメージを移動済みの状態。
ここからマイグレーションをしてみる。

なお、ここで注意したいのがISOファイルのマウント状態。
もしローカルに存在しているストレージ機器に保存しているISOファイルをマウントしていると、マイグレーションは成功するがライブマイグレーションは失敗する。
また、マイグレーションも起動前にISOのマウントを解除する必要がある。

マイグレーション

まずは仮想マシンを停止した状態で、Proxmox110 ⇛ Proxmox120へマイグレーションを行ってみる。

マイグレーションを行いたい仮想マシンを右クリックして、「マイグレート」をクリックする。

マイグレート先のノードを選択し、「Migrate」をクリックする。

マイグレーションのログが表示されていく。
「TASK OK」と表示されればマイグレーション完了。

移動した仮想マシンを起動させて…

無事、起動することを確認した。

ライブマイグレーション

次に、この仮想マシンの電源を入れたままProxmox110へライブマイグレーションを行ってみる。

再度仮想マシンを右クリックして「マイグレート」をクリック。

マイグレート先のノードを選択し、「Online」にチェックが入っている事を確認して「Migrate」をクリックする。

ライブマイグレーションのログが表示されていく。
最後に「TASK OK」と表示されることを確認する。

起動したままでマイグレーション出来た事が確認できた。
なお、マイグレートを行うとコンソールを仮想マシンの選択から開き直す必要があるので注意。

うーん…少し贅沢だけど、ストレージマイグレーションも使えるようにしてくれると嬉しいなぁ…
ストレージなんてそこらに無いんだし。

まぁ、今回のProxmoxシステム領域はUSBにインストールされているので、各マシンのローカルにディスクを入れないでストレージにだけ入れてしまうこともできるし、ローカルディスクの金額でストレージ用サーバを構成すればいいか?

Proxmox VE 3.2 への追加βパッケージを試してみた

$
0
0

2chを見ていたら、Proxmox VE 3.2に追加を行うパッケージのβテストが開始されたとのことなので試してみた。

53login:Penguinsage2014/02/10(月) 23:19:11.48 ID:Sq/Qsxvn(1)
公式フォーラムより 人柱求ム、と

Beta packages for Proxmox VE 3.2 – pvetest

We uploaded a lot of packages for beta testing, containing new features, small improvements and countless bug fixes.

Here are the highlights

Proxmox VE Ceph Server
Spiceterm: SPICE as full replacement for Java based console (VM, shell and OpenVZ console). For now, Java console is still the default
QEMU 1.7, including major update of the VM backup code
Open vSwitch
New 3.10 Kernel (based on RHEL7, for now without OpenVZ support)
Latest 2.6.32 kernel, updated drivers

A big Thank-you to our active community for all feedback, testing, bug reporting and patch submissions. For complete release notes see the change logs of each package.

Package repositories
http://pve.proxmox.com/wiki/Package_repositories

Everybody is encouraged to test and give feedback!

ちょっと試してみよう。
地味にOpen vSwitchとあるのが期待。Open Flowのアレかな?

個人的には、スイッチ繋がりで仮想スイッチのGUI管理機能の方が欲しいけど…

リポジトリ追加

βテストは、どうやらすでにインストール済のProxmoxにアップデートでパッケージをインストールさせて行うようだ。
上のレスにもあるが、以下のリンク先の設定をテスト用Proxmoxで行う。

Package repositories #2.3 Proxmox VE pvetest Repository

http://pve.proxmox.com/wiki/Package_repositories#Proxmox_VE_pvetest_Repository

SSHで接続し、リポジトリの追加を行う。

 echo “# PVE pvetest repository provided by proxmox.com” >> /etc/apt/sources.list
 echo “deb http://download.proxmox.com/debian wheezy pvetest” >> /etc/apt/sources.list

アップデートを適用させるため、以下のコマンドを実行する。

 apt-get update 
 apt-get upgrade
 apt-get dist-upgrade

これで追加機能が使用できるようだ。

 pveversion

…パッケージのみのベータ版なので、バージョンは変わっていない。
機能は追加されたようなので、すこしずつ試していこう。

Proxmox VE 3.2への追加機能「SPICE」を試してみた

$
0
0

Proxmox VE 3.2への追加パッケージ機能「SPICE」を試してみた。

これは、今まで使用されていたJAVAコンソールのかわりになるように開発されたもののようだ。特徴としては、既存のJavaコンソールに関してはクライアント側はJava Runtime等を入れておけばいいだけだったが、SPICEの場合は専用のクライアントソフトウェアを使用するようだ。

…あれ?退化してないか?
まぁ、Windows、Linux、Mac OS X 全てのクライアントソフトが存在しているので、良しとするか…?

クライアントソフトダウンロード&インストール

とりあえず、まずはクライアントソフトウェアをダウンロードして、つながるか確認してみることにしよう。ダウンロードは、以下のページにあるリンクから行うようだ。

SPICE – Proxmox VE

http://pve.proxmox.com/wiki/SPICE#SPICE_client

自身のクライアントOSのリンクをクリックし、移行先のページでダウンロードを行う。ここでは、多分一番利用者が多いであろうWindows系のクライアントPCでの手順を記述する。

ClientのWindowsのところでリンクを新しいタブかウィンドウで開く(こうしないと、htmlをダウンロードされてしまったので)

リンク先から、Windowsのクライアントをダウンロードする。
その後、ダウンロードした「.msi」ファイルを実行する。

特に何も聞かれることはなく、「Remote viewer」がインストールされる。

アクセス

実際にアクセスしてみることにする。

画面右上のコンソールから、「SPICE」をクリックする。
この時、「~.vv」ファイルを「Remote viewer」と関連付けて置かないといけないので、一度ファイルをダウンロードしてから右クリックして関連付けをするといい。

その後、ダウンロードした「~.vv」ファイルを実行した画面が以下。

コンソールが実行された。

仮想マシンでの利用方法

なお、仮想マシンでSPICEを利用するには、仮想グラフィックボードの変更及びドライバの適用が必要なようだ。

手順は、このページにあるように進めればよさそう。

うーん、セキュリティに厳しい環境であればSPICEが良いと思うけど、現状はJAVAコンソールでいいような気もする。

仮想マシンでのSPICEの利用はまた今度やってみよう。

Proxmox VE 3.1 から3.2へアップグレードしてみた

$
0
0

先日、Proxmoxの最新版 「Proxmox VE 3.2」がリリースされた。

インストール手順自体はProxmox VE 3.1と変わらない様子。
では、Proxmox VE 3.1からProxmox VE 3.2へのアップグレードの方法はどうすればいいのか。

Proxmox VE 3.2へのアップグレード方法は、Subscription の有無によって2つの方法に分けられる。

Subscription 有り

Subscriptionを購入している場合は、以下のコマンドを実行するだけでアップグレードが可能だ。

 apt-get update
 apt-get dist-upgrade

上記コマンド実行後、再起動を行うことでアップグレードが適用される。

Subscription 無し

サブスクリプションがない場合は、パッケージリストに1行(コメントも含めると2行)追加する必要がある。
以下のコマンドを実行することでアップグレードできる。

echo “# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use” >> /etc/apt/sources.list
 echo “deb http://download.proxmox.com/debian wheezy pve-no-subscription” >> /etc/apt/sources.list

apt-get update
apt-get dist-upgrade

実際に実行してみる。
まずは現行のバージョンを確認する。

pveversion

バージョンは3.1であることがわかる。

実際に上記4行のコマンドを実行した。
再起動を行い、再度バージョンを確認する。

無事アップグレードが行われたことが確認できた。

Proxmox VE 3.2への追加機能「Proxmox VE Ceph Server」を試してみた

$
0
0

Proxmox VE 3.2 へ追加された機能「Ceph Server」を試してみた。
これは、どうやらクラスタ構成のProxmoxを監視するためのツールらしい。ブラウザの「Ceph」タブのところでステータスを見るようだ。

 

下準備

まずは、下準備としてクラスタ構成にした「proxmox110」と「proxmox120」を構築しておく。

●proxmox110

 

●proxmox120

 

Ceph Server インストール

各ノードに対し、以下のコマンドを実行しCeph Serverのインストールを行う。

pveceph install

●proxmox110

 

●proxmox120

 

構成ファイルの作成

各ノードにCeph Serverインストール後、クラスタマスタとなっているマシン(今回の場合はproxmox110)で構成ファイルを作成する。
以下のコマンドを実行し、クラスタで使用しているネットワークの構成ファイルを作成する。

pveceph init –network 192.168.0.0/24

このコマンドを実行する事で、設定ファイル「/etc/pve/ceph.conf」が作成される。
なお、ここで指定している「192.168.0.0/24」は、クラスタ構成を作成時に使用しているネットワークを指定する必要がある。環境に併せて変動するので注意。

●proxmox110

 

Ceph Moniterの作成

さて、ここまでで一応の初期設定はできたが、このままではブラウザのCephタブは使えないようだ。Ceph Moniterというものを作成するため、以下のコマンドを各ノードで実行する。

pveceph createmon

●proxmox110

 

●proxmox120

 

ブラウザからステータスを確認

さて、それでは実際にブラウザからステータスを確認してみる。

●Status

 

無事、Cephのステータスが確認出来た。
Cephの画面下にあるタブを切り替えて他の情報を参照もできるし、実際にインストールした際は他の情報も見てもらえるといい。

なお、HDDの情報を取得したい場合は、こちらの設定が必要。

ssh経由でディレクトリにあるファイルの差異を確認する

$
0
0

時には、ssh越しにディレクトリの中にあるファイルに差異が無いかを確認したいときもある。
今回は、そんな時に使える確認方法について記述する。

1.diffコマンドで確認する

公開鍵認証でのログイン設定が行われている(もしくは、sshpassコマンドが導入されている)ようならば、diffコマンドで差異を確認することができる。
以下のようにコマンドを実行することで、ローカル、リモートどちらかで足りないファイルを確認する。

diff <(ssh ユーザ名@ホスト名 'find /確認するPATH -type f | sort') <(find /確認するPATH -type f | sort)

20150311_000001

test@test-vm-ubuntu:~$ ssh root@192.168.0.240 find /work -type f | sort
/work/aaaaa
/work/test/20141207/messages
/work/test/aaa.txt
/work/test/previous/Rev_1.0_v41.BIN
/work/test/previous/Rev_2.5_v66.BIN
/work/test/previous/previous
/work/test/previous0.3.linux32.tar.gz
/work/test/previous0.3.linux32.tar.gz.1
/work/test/test.sh
/work/test/test.txt
/work/test/test1.sh
/work/test/test1_.sh
/work/test/test2.sh
/work/test/test2.txt
/work/test/test3.sh
/work/test/test4.sh
/work/test/test5.sh
/work/test/winexe_1.00.1-1_amd64.deb
/work/test_/test.sh
/work/test_/test.txt
/work/test_text
/work/work/test/20141207/messages
/work/work/test/test.sh
/work/work/test/test.txt
/work/work/test/test2.sh
/work/work/test/test2.txt
test@test-vm-ubuntu:~$ find /work -type f
/work/test_/test.txt
/work/test_/test.sh
/work/work/test/test2.txt
/work/work/test/test2.sh
/work/work/test/20141207/messages
/work/work/test/test.txt
/work/work/test/test.sh
/work/test/previous/previous
/work/test/previous/Rev_2.5_v66.BIN
/work/test/previous/Rev_1.0_v41.BIN
/work/test/test2.txt
/work/test/test4.sh
/work/test/winexe_1.00.1-1_amd64.deb
/work/test/test5.sh
/work/test/aaa.txt
/work/test/previous0.3.linux32.tar.gz
/work/test/test1.sh
/work/test/test2.sh
/work/test/previous0.3.linux32.tar.gz.1
/work/test/20141207/messages
/work/test/test1_.sh
/work/test/test3.sh
/work/test/test.txt
/work/test/test.sh
/work/test_text
test@test-vm-ubuntu:~$ diff <(ssh root@192.168.0.240 find /work -type f | sort) <(find /work -type f | sort)
1d0
< /work/aaaaa

 

確認を行うディレクトリのPATHがサーバごとで違うならば、以下のように実行する。

diff <(ssh ユーザ名@ホスト名 'cd /確認するPATH; find ./ -type f | sort') <(cd /確認するPATH; find ./ -type f | sort)

20150311_000002

 

2.diffコマンドで確認する(ASCIIファイルの中身)

ASCIIファイルの中身の差異を確認するならば、diffコマンドとssh、そしてgrepを組み合わせると良いだろう。

diff <(ssh ユーザ名@ホスト名 'cd /確認するPATH; grep -Rn "" ./ | sort') <(cd /確認するPATH; grep -Rn "" ./ | sort)

20150311_000003

test@test-vm-ubuntu:~$ diff <(ssh root@192.168.0.240 'cd /work;grep -Rn "" ./ | sort') <(cd /work;grep -Rn "" ./ | sort)
76,77c76
< ./test_text:3:aaaaaaaaaa
< ./test_text:4:AAAA5678 --- > ./test_text:3:AAAA5678

3.rsyncコマンドを用いる

さて、diffコマンドを利用した方法は公開鍵認証を用いるなど、パスワード無しでのログインを行える必要がある。
この設定がされていない環境の場合、rsyncが有るようであればこれを用いるのが現実的だろう。

rsyncコマンドで、ssh経由でディレクトリの差異を確認する場合、以下のようにコマンドを実行する。

rsync --checksum --dry-run -rvce "ssh -p ポート番号" ユーザ名@ホスト名:/対象ディレクトリ /対象ディレクトリ

20150311_000004

test@test-vm-ubuntu:~$ rsync --checksum --dry-run -rvce "ssh -p 22" root@192.168.0.240:/work /work
receiving incremental file list
work/vbvvvv
work/test/test1.sh

sent 28 bytes  received 1,017 bytes  2,090.00 bytes/sec
total size is 1,621  speedup is 1.55 (DRY RUN)
OpenSSH[実践]入門 (Software Design plus) OpenSSH[実践]入門 (Software Design plus)

Linux/UNIXでifconfig・ip・hostnameコマンドからOSのIPアドレスのみを取得する

$
0
0

LinuxやUNIXで、ただIPアドレスを知りたいだけではなく、IPアドレスのみを取得する場合、以下のようにすると良いだろう。

1.ifconfig・ipコマンドで取得する場合

ifconfig・ipコマンドでIPアドレスのみを抽出する場合、以下のようにする。

ifconfigコマンド

ifconfig インターフェイス名 | grep 'inet' | cut -d: -f2 | awk '{ print $1}'

20150312_000000

ipコマンド

ip addr list インターフェイス名 | grep "inet " | cut -d' ' -f6 | cut -d/ -f1

20150312_000001

 

2.hostnameコマンドで取得する場合

IPアドレスのみを抽出する場合、hostnameコマンドで抽出することもできる。

hostname -i

 

複数設定している場合は、以下のコマンドで取得出来る。

hostname -I
ネットワーク ―目には見えないしくみを構成する技術 ― ネットワーク ―目には見えないしくみを構成する技術 ―

bashで覚えておきたいショートカットキー(キーバインド)

$
0
0

Linuxでデフォルトのログインシェルといえばbash。sshで接続するにしても、bashは必ず使うものだ。
今回は、そんなbashで利用できるショートカットキー(キーバインド)で覚えておくと便利なものをピックアップしてみた。

1.カーソル移動系

カーソルを移動する際に便利なショートカットキー。
こうしてみると、意外と知らなかったショートカットキーがあったりする。

コマンド 機能
Ctrl + a
(Homeキー)
カーソルを行の先頭に移動する
Ctrl + e
(Endキー)
カーソルを行の最後に移動する
Ctrl + b
(←キー)
カーソルを一文字戻す
Ctrl + f
(→キー)
カーソルを一文字進める
Alt + b 一単語分(スペース区切り)カーソルを戻す
Alt + f 一単語分(スペース区切り)カーソルを進める
Ctrl + xx カーソルの位置を記憶する
(再度同じキーを実行すると、最初に記憶したカーソルの位置に戻る)

 

2.コマンド履歴系

コマンドの履歴を利用する際のショートカットキー。
上下キーでの履歴表示は多くの人が使っているだろうが、それ以外のキーあまり知られていないと思う。

コマンド 機能
Ctrl + p
(↑キー)
コマンドの一つ前の履歴を呼び出す
Ctrl + n
(↓キー)
コマンドの一つ後の履歴を呼び出す
Alt + < 記録されている最初の履歴を呼び出す
Alt + > 記録されている最後の履歴を呼び出す
Ctrl + r コマンドの履歴を検索する
(検索キーワード入力後、Ctrl + rで履歴を選ぶ)
途中で抜ける場合はCtrl + gキーを実行する
Ctrl + o 現在選択されている履歴を実行後、次の履歴を選択する
Alt + r 履歴内容の編集を元に戻す(選択していた履歴の状態に戻す)
Alt + . 最後に実行された履歴の引数を出力する

3.編集系

カーソル上の文字を編集する際に使えるショートカットキー。
文字の削除の他、コピーや切り取り、貼り付けといったことも可能だ。

コマンド 機能
Ctrl + d
(Deleteキー)
カーソル位置の文字を削除する
Ctrl + h
(Backspaceキー)
カーソル位置の左の文字を削除する
Ctrl + w カーソル位置の左の単語を削除する(クリップボードに切り取る)
Alt + d カーソル位置の右の単語を削除する(クリップボードに切り取る)
Ctrl + u カーソル位置の左側を全て削除する(クリップボードに切り取る)
Ctrl + k カーソル位置の右側を全て削除する(クリップボードに切り取る)
Ctrl + y 切り取った文字(Ctrl + w,u,k)を貼り付ける
Alt + t スペース区切りでカーソル位置の単語と前の単語を入れ替える
ESC + t スペース区切りでカーソル位置の単語と後ろの単語を入れ替える
Ctrl + t カーソル位置の文字と一つ前の文字を入れ替える
Alt + u カーソル位置より右側の小文字を全て大文字にする(単語単位)
Alt + l カーソル位置より右側の大文字を全て小文字にする(単語単位)
Alt + c カーソル位置の文字を小文字⇔大文字に変換する
(変換後、単語の最後にカーソル位置を移動する)
Ctrl + _ 変更を元に戻す(ExcelなどのCtrl + zと同じ)

 

4.画面表示系

画面表示について操作出来るショートカットキー。

コマンド 機能
Ctrl + l 画面をクリアする(clearコマンド相当)
Ctrl + s 画面表示を停止する
(Ctrl + qで再開する)
Shift + PageUp 画面の表示を一画面分上に移動する
Shift + PageDown 画面の表示を一画面分下に移動する

 

5.その他

その他、使えると便利なショートカットキーを記述する。

コマンド 機能
Ctrl + c 現在実行しているプロセスを終了(kill -2)する
Ctrl + \ 現在実行しているプロセスを中止(kill -3)する
Ctrl + z 現在実行しているプロセスを一時停止する(fgコマンドで再開する)
Tab
(Ctrl + i)
入力中のコマンドやPATHを補完する
Alt + @ /etc/hostsからホスト名を補完する
Alt + ~ /etc/passwdからユーザ名を補完する
Alt + $ シェル変数を補完する
1.Ctrl + x
2.Ctrl + v
bashのバージョンを出力する
Ctrl + d exitする(ログアウトする)

 

いかがだっただろうか。
知ってるもの、知らないものあったと思うが、呼んだ人がより簡単、早くにコンソール操作が行えるようになってくれたら幸いである。

PFU Happy Hacking Keyboard Professional2 白 英語配列 USBキーボード 静電容量無接点 UNIX配列 WINDOWS/MAC両対応 ホワイト PD-KB400W PFU Happy Hacking Keyboard Professional2 白 英語配列 USBキーボード 静電容量無接点 UNIX配列 WINDOWS/MAC両対応 ホワイト PD-KB400W

Proxmox VE 4.1でKVMのディスクイメージをインポートする

$
0
0

Proxmox VE 4.1では、KVMベースではあるが、残念ながらWebコンソールから他の仮想プラットフォームからのイメージをインポートする方法が無い(KVMのディスクイメージ含む)。
そのため、ターミナルからの操作が必要となってくる。

今回は、KVMのディスクイメージ(.img)ファイルをインポートして、Proxmox上で利用する方法について記述する。

1.仮想マシンの作成

まず、こちらを参考にKVMのディスクイメージを利用する仮想マシンを作成する。
作成時、ディスクイメージタイプはraw、ディスクイメージは出来れば後ほどアップロードするimgファイルと同じ容量で作成を進める。
※ディスクイメージタイプ・容量が違う場合、仮想マシンの設定ファイル(/etc/pve/nodes/仮想ホスト名/qemu-server/仮想マシンID.conf)を直接いじって、ディスク容量をいじってやらないといけない。

2.ディスクイメージのアップロード

ディスクイメージ(.imgファイル)をscp経由などでアップロードし、対象の仮想マシンのイメージ格納ディレクトリ(デフォルトでは「/var/lib/vz/images/仮想マシンID/」)に移動、既存のディスクイメージ(vm-仮想マシンID-disk-1.raw)と置き換える。

 

3.仮想マシンの起動

ディスクイメージの置き換えが終わったら、後はWebコンソール上から仮想マシンを起動するだけだ。

 

ネットワーク仮想化 基礎からすっきりわかる入門書 ネットワーク仮想化 基礎からすっきりわかる入門書

Proxmox VE 4.1でVMwareESXiのディスクイメージ(vmdk)をインポートする

$
0
0

Proxmox VE 4.1では、ターミナルでの操作は必要となってくるが、以下のように操作することでVMware ESXiのディスクイメージ(vmdkファイル)をそのまま利用出来る(Webコンソール上からインポート出来ないけど)。

1.仮想マシンの作成

まず、こちらを参考にVMeare ESXiのディスクイメージを利用する仮想マシンを作成する。
作成時、ディスクイメージタイプはraw、ディスクイメージは出来れば後ほどアップロードするimgファイルと同じ容量で作成を進める。
※ディスクイメージタイプ・容量が違う場合、仮想マシンの設定ファイル(/etc/pve/nodes/仮想ホスト名/qemu-server/仮想マシンID.conf)を直接いじって、ディスク容量をいじってやらないといけない。

2.ディスクイメージのアップロード

ディスクイメージ(.vmdkファイル)をscp経由などでアップロードし、対象の仮想マシンのイメージ格納ディレクトリ(デフォルトでは「/var/lib/vz/images/仮想マシンID/」)に移動、既存のディスクイメージ(vm-仮想マシンID-disk-1.vmdk)と置き換える。

3.仮想マシンの起動

ディスクイメージの置き換えが終わったら、後はWebコンソール上から仮想マシンを起動するだけだ。
vmxファイルをそのまま利用出来ないのは少々残念だが、ディスクイメージをわざわざ変換しなくてもそのまま利用出来るのは楽だ。

 

VMware徹底入門  第4版 VMware vSphere 6.0対応 VMware徹底入門 第4版 VMware vSphere 6.0対応

Proxmox VE 4.1でHyperVのディスクイメージ(.vhd)をインポートする

$
0
0

Proxmox VE 4.1でHyperVのディスクイメージを利用する場合、KVMで利用できるような形式に変換する必要がある。

1.仮想マシンの作成

まず、こちらを参考にKVMのディスクイメージを利用する仮想マシンを作成する。
作成時、今回の場合はディスクイメージタイプはraw、ディスクイメージは出来れば後ほどアップロードするimgファイルと同じ容量で作成を進める。
※ディスクイメージタイプ・容量が違う場合、仮想マシンの設定ファイル(/etc/pve/nodes/仮想ホスト名/qemu-server/仮想マシンID.conf)を直接いじって、ディスク容量をいじってやらないといけない。

2.ディスクイメージのアップロード

ディスクイメージ(.vhdファイル)をscp経由などでアップロードし、対象の仮想マシンのイメージ格納ディレクトリ(デフォルトでは「/var/lib/vz/images/仮想マシンID/」)に移動する。
ファイル移動後、以下のコマンドを実行しvhdファイルをqcow2形式に変換する。

qemu-img convert [vhdファイルPATH] -O qcow2 [qcpw2ファイルPATH(出力先)]

 

新しいディスクイメージファイルが出来上がったら、既存のディスクイメージ(vm-仮想マシンID-disk-1.raw)と置き換える。

 

3.仮想マシンの起動

ディスクイメージの置き換えが終わったら、後はWebコンソール上から仮想マシンを起動するだけだ。

すべてわかる仮想化大全2016(日経BPムック) すべてわかる仮想化大全2016(日経BPムック)

Proxmox VE 4.1でストレージ機器を用いずにクラスタ間でライブマイグレーションを行う(DRBD9)

$
0
0

Proxmoxのクラスタ間でのライブマイグレーションを行う場合、通常であればiSCSIやSANで仮想HDDなどをおいておくストレージが必要なのだけど、それなしでもvSANやNutanix CEを利用するようにしてライブマイグレーションを出来ないか調べてみた。
一応、ProxmoxのノードでCeph(RBD)を利用することが出来るのだけど、そうなると最低でも3台構成以上じゃないとあまり旨味が無いので、なんかいい方法が無いかと調べていたところ、各クラスタノードで共通のディレクトリ(ディスク)をDRBDで同期させて、そこに仮想マシンのファイルを配置することで対応出来そうだったので、やってみることにした。

前提として、すでにProxmoxクラスタは構築済、ディスクはまだフォーマットされていないけど各クラスタに同容量のが刺さってる状態で、DRBD9を導入する。
また、DRBDでディスクの同期を行うために、Proxmox上の仮想マシンで利用しないNIC(ここではeth1)を別途用意しておく必要がある。
作業はこちらの情報を参考に進めていく。

1.ネットワークの設定

ネットワークの設定ファイル(/etc/network/interfaces)を編集し、DRBDで通信を行うためのNIC(eth1)について設定を追加する。

●/etc/network/interfaces(例)

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
        address  IPアドレス(DRBD用)
        netmask  255.255.255.0

auto vmbr0
iface vmbr0 inet static
        address IPアドレス(通常利用)
        netmask XXX.XXX.XXX.XXX
        gateway XXX.XXX.XXX.XXX
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

 

設定完了後、念のため再起動しておくと良いだろう。

 

2.ディスクフォーマット&DRBDの導入

次に、各クラスタでディスク(/dev/sdb)のフォーマットを行う。
事前にpartedを導入しておくと良いだろう。
サブスクリプションは契約していないため、このままだとdebianのapt-getも出来ないので不要なファイルを削除してパッケージをインストールする。

rm /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" >> /etc/apt/sources.list
apt-get update
apt-get install parted thin-provisioning-tools

 

次に、partedコマンドでディスクのフォーマットを行う。

parted /dev/sdb mktable gpt
parted /dev/sdb mkpart drbd 1 100%
parted /dev/sdb p
root@BS-PUB-MICROSERVER-01:~# parted /dev/sdb mktable gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want
to continue?
Yes/No? Y
Information: You may need to update /etc/fstab.

root@BS-PUB-MICROSERVER-01:~# parted /dev/sdb mkpart drbd 1 100%
Information: You may need to update /etc/fstab.

root@BS-PUB-MICROSERVER-01:~# parted /dev/sdb p
Model: ATA Hitachi HCS54505 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  500GB  500GB               drbd

 

ディスクフォーマット後、LVMの設定を実施する。

vgcreate drbdpool /dev/sdb1
lvcreate -L 450G -n drbdthinpool -T drbdpool
root@BS-PUB-MICROSERVER-02:~# vgcreate drbdpool /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
  Volume group "drbdpool" successfully created
root@BS-PUB-MICROSERVER-02:~# lvcreate -L 450G -n drbdthinpool -T drbdpool
  Logical volume "drbdthinpool" created.

次に、drbdmanage をapt-getから導入する。

apt-get install drbdmanage

 

互いにssh接続を行う必要があるので、DRBD用のNICがknown_hostsに登録されるよう事前にログインしあっておく。
(事前にクラスタ化しているようであれば、鍵認証はすでに出来てるはずである)

クラスタのウチの1台(ここでは、「BS-PUB-MICROSERVER-01」)で、以下のコマンドを実行する。

drbdmanage init -q 自身のDRBD用IPアドレス
root@BS-PUB-MICROSERVER-01:~# drbdmanage init -q 10.50.10.101
  Failed to find logical volume "drbdpool/.drbdctrl_0"
  Failed to find logical volume "drbdpool/.drbdctrl_1"
  Logical volume ".drbdctrl_0" created.
  Logical volume ".drbdctrl_1" created.
md_offset 4190208
al_offset 4157440
bm_offset 4153344

Found some data

 ==> This might destroy existing data! <== Do you want to proceed? *** confirmation forced via --force option *** initializing activity log NOT initializing bitmap Writing meta data... New drbd meta data block successfully created. md_offset 4190208 al_offset 4157440 bm_offset 4153344 Found some data  ==> This might destroy existing data! <==

Do you want to proceed?
*** confirmation forced via --force option ***
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
empty drbdmanage control volume initialized.
empty drbdmanage control volume initialized.
Operation completed successfully

 

次に、以下のコマンドでもう一台のノード(ここでは、「BS-PUB-MICROSERVER-02」)を追加する。

drbdmanage add-node -q ノード名 IPアドレス
root@BS-PUB-MICROSERVER-01:~# drbdmanage add-node -q BS-PUB-MICROSERVER-02 10.50.10.102
Operation completed successfully
Operation completed successfully

Executing join command using ssh.
IMPORTANT: The output you see comes from BS-PUB-MICROSERVER-02
IMPORTANT: Your input is executed on BS-PUB-MICROSERVER-02
  Logical volume ".drbdctrl_0" successfully removed
  Logical volume ".drbdctrl_1" successfully removed
  Logical volume ".drbdctrl_0" created.
  Logical volume ".drbdctrl_1" created.
You want me to create a v09 style flexible-size internal meta data block.
There appears to be a v09 flexible-size internal meta data block
already in place on /dev/drbdpool/.drbdctrl_0 at byte offset 4190208

Do you really want to overwrite the existing meta-data?
*** confirmation forced via --force option ***

Do you want to proceed?
*** confirmation forced via --force option ***
NOT initializing bitmap
md_offset 4190208
al_offset 4157440
bm_offset 4153344

Found some data

 ==> This might destroy existing data! <== initializing activity log Writing meta data... New drbd meta data block successfully created. You want me to create a v09 style flexible-size internal meta data block. There appears to be a v09 flexible-size internal meta data block already in place on /dev/drbdpool/.drbdctrl_1 at byte offset 4190208 Do you really want to overwrite the existing meta-data? *** confirmation forced via --force option *** Do you want to proceed? *** confirmation forced via --force option *** NOT initializing bitmap md_offset 4190208 al_offset 4157440 bm_offset 4153344 Found some data  ==> This might destroy existing data! <==
initializing activity log
Writing meta data...
New drbd meta data block successfully created.
Operation completed successfully

※もしこの時、「Error: Operation not allowed on satellite node」というエラーが出た場合は、こちらに記述されている対応を行うと良いだろう。

 

最後に、以下のコマンドを実行しノードの一覧を確認する。

drbdmanage list-nodes
root@BS-PUB-MICROSERVER-01:~# drbdmanage list-nodes
+------------------------------------------------------------------------------------------------------------+
| Name                  | Pool Size | Pool Free |                                                    | State |
|------------------------------------------------------------------------------------------------------------|
| BS-PUB-MICROSERVER-01 |    460800 |    458910 |                                                    |    ok |
| BS-PUB-MICROSERVER-02 |    460800 |    458910 |                                                    |    ok |
+------------------------------------------------------------------------------------------------------------+

 

ちゃんとPool Size/Pool Freeの値が表示されている事が確認出来たら、「/etc/pve/storage.cfg」の内容を以下のように追記する。
なお、「redundancy」には同期するノード数を記述する(物理ノード数より大きい値は入れられないので注意)。

dir: local
        path /var/lib/vz
        content vztmpl,images,iso,rootdir
        maxfiles 0

drbd: drbd1
        content images,rootdir
        redundancy 2

 

3.ライブマイグレーションの実施

DRBDの設定ができたら、後はWEBコンソール上で仮想マシンを作成するだけだ。
※当たり前の話だが、ディスクの作成先はDRBDのディスク上となる。また、ディスクフォーマットは「raw」一択なので注意。

で、作成後に対象のノードを右クリック、[マイグレート]を選択。

20160327_000006

 

後は「オンライン」にチェックが入った状態でマイグレートを実施するだけだ。

20160327_000007

20160327_000008

 

確かに、別途ストレージ機器を用意しなくてもライブマイグレーションを行える事が確認できた。
ディスク容量はその分食うけど、仮想ホストノード機器のみでマイグレーションを行えるのはいいね。

 

すべてわかる仮想化大全 2016(日経BP Next ICT選書) すべてわかる仮想化大全 2016(日経BP Next ICT選書)

Proxmox VE 4.1で既存のクラスタにノードを追加する

$
0
0

Proxmox VEでは、簡単にクラスタにノードを追加することができる。
追加したいノードで以下のコマンドを実行することで、クラスタへの参加が行える。

pvecm add クラスタIPアドレス

root@BS-PUB-MICROSERVER-03:~# pvecm add 172.28.0.20
The authenticity of host '172.28.0.20 (172.28.0.20)' can't be established.
ECDSA key fingerprint is 4b:1a:7a:48:f7:9c:5d:d6:03:a3:99:4f:65:1f:98:9b.
Are you sure you want to continue connecting (yes/no)? yes
root@172.28.0.20's password:
copy corosync auth key
stopping pve-cluster service
backup old database
waiting for quorum...OK
generating node certificates
merge known_hosts file
restart services
successfully added node 'BS-PUB-MICROSERVER-03' to cluster.
root@BS-PUB-MICROSERVER-03:~# pvecm status
Quorum information
------------------
Date:             Sat Apr  2 19:45:38 2016
Quorum provider:  corosync_votequorum
Nodes:            3
Node ID:          0x00000003
Ring ID:          68
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2
Flags:            Quorate

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 172.28.0.20
0x00000002          1 172.28.0.21
0x00000003          1 172.28.0.22 (local)

 

VMware徹底入門  第4版 VMware vSphere 6.0対応 VMware徹底入門 第4版 VMware vSphere 6.0対応

Proxmox VE 4.1でDRBD9を用いた状態でHA化設定を行う

$
0
0

前回、Proxmox VE 4.1でDRBD9の設定を行い、ライブマイグレーションが行えるようにしたので、今回はHA化の設定を行う。
この設定を行う事で、物理ノードに何かが合った場合、VMが自動的に別ノードにマイグレーションされて再起動されるようになる。
ただし、注意したいのがノードが最小で3台以上であること。
2台構成では動作しないので注意だ。

まず、WEBコンソールから[データセンター] > [HA] > [グループ]を開き、[作成]からHAグループを作成する(ここでは、グループIDを「test」としている)。

20160403_000001

 

次に、[リソース]タブを開き、物理ノードが停止しても自動再起動させたいVMID、先ほどのグループIDを選択し、enableにチェックを入れる。

20160403_000003

 

これで、HA化の設定は完了となる。
今回はDRBDディスクでの設定を行ったが、各ノードからアクセス出来るストレージ(iSCSIとかNFSとか)があるのであれば、同様の事が可能だ。

 

VMware自動化ガイド スクリプティングとワークフローによる管理テクニック VMware自動化ガイド スクリプティングとワークフローによる管理テクニック

Proxmox VE 4.1でCephを利用する

$
0
0

Proxmox VE 4.1では、クラスタを構成する各ノードにオブジェクトストレージである「Ceph」をインストールし、OSDとして動作させることが出来る。
つまり、Proxmoxのクラスタノードが10台以上とかいても、共通アクセスするストレージ機器を用意することなく動作を継続することが出来るということになる。イメージ的には、vSANに似たように利用することが可能となる。

Cephそのものの動作については、以下のページを参考にするとよいだろう。

 

今回は、このCephをProxmox VE 4.1クラスタにインストールし、各ノードにマウントさせる。
こちらを参考に作業を行い、以下の前提条件をクリアしていることとする。

  • Proxmoxクラスタのノードは3台以上
  • 各ノードに追加ディスク(ここでは/dev/sdb)がある
  • 各ノードにクラスタで利用するため専用の物理NIC(ここではeth1)を増設している

 

Cephの仕組みから3多重となるため、Proxmox クラスタも3台以上必要なので注意。
それではやってみよう。

 

1.クラスタ用ネットワークの設定

まず、Cephクラスタが利用する専用のネットワーク設定を行う。
「/etc/network/interfaces」を編集し、ブリッジとしてではなく、物理ノードで直接使うよう設定を編集する。

●例

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
        address  クラスタ用IPアドレス
        netmask  255.255.255.0

auto vmbr0
iface vmbr0 inet static
        address ブリッジ用IPアドレス
        netmask 255.255.255.0
        gateway ブリッジ用ゲートウェイ
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

 

これを各ノードで行い、念のため再起動を行う。

 

2.Cephのインストール・設定

次に、各ノードにCephをインストールするため、以下のコマンドを実行する。

pveceph install -version hammer
root@BS-PUB-MICROSERVER-01:~# pveceph install -version hammer
download and import ceph repository keys
update available package list
Reading package lists...
Building dependency tree...
Reading state information...
gdisk is already the newest version.
The following extra packages will be installed:
  binutils cryptsetup-bin libbabeltrace-ctf1 libbabeltrace1
  libboost-program-options1.55.0 libleveldb1 liblttng-ust-ctl2 liblttng-ust0
  librados2 librbd1 libsnappy1 liburcu2 python-ceph python-cephfs python-rados
  python-rbd uuid-runtime
Suggested packages:
  binutils-doc
Recommended packages:
  btrfs-tools ceph-mds libradosstriper1
The following NEW packages will be installed:
  binutils ceph cryptsetup-bin libbabeltrace-ctf1 libbabeltrace1
  libboost-program-options1.55.0 libleveldb1 liblttng-ust-ctl2 liblttng-ust0
  libsnappy1 liburcu2 python-cephfs python-rados python-rbd uuid-runtime
The following packages will be upgraded:
  ceph-common librados2 librbd1 python-ceph
4 upgraded, 15 newly installed, 0 to remove and 124 not upgraded.
Need to get 30.6 MB of archives.
After this operation, 109 MB of additional disk space will be used.
Get:1 http://ftp.jp.debian.org/debian/ jessie/main libboost-program-options1.55.0 amd64 1.55.0+dfsg-3 [143 kB]
Get:2 http://ftp.jp.debian.org/debian/ jessie/main libsnappy1 amd64 1.1.2-3 [40.4 kB]
Get:3 http://ftp.jp.debian.org/debian/ jessie/main libleveldb1 amd64 1.17-1 [137 kB]
Get:4 http://ftp.jp.debian.org/debian/ jessie/main uuid-runtime amd64 2.25.2-6 [74.3 kB]
Get:5 http://ftp.jp.debian.org/debian/ jessie/main libbabeltrace1 amd64 1.2.3-2 [46.2 kB]
Get:6 http://ftp.jp.debian.org/debian/ jessie/main libbabeltrace-ctf1 amd64 1.2.3-2 [101 kB]
Get:7 http://download.ceph.com/debian-hammer/ jessie/main python-ceph amd64 0.94.6-1~bpo80+1 [788 kB]
Get:8 http://ftp.jp.debian.org/debian/ jessie/main liburcu2 amd64 0.8.5-1 [53.6 kB]
Get:9 http://ftp.jp.debian.org/debian/ jessie/main liblttng-ust-ctl2 amd64 2.5.0-1 [83.0 kB]
Get:10 http://ftp.jp.debian.org/debian/ jessie/main liblttng-ust0 amd64 2.5.0-1 [132 kB]
Get:11 http://ftp.jp.debian.org/debian/ jessie/main binutils amd64 2.25-5 [3516 kB]
Get:12 http://ftp.jp.debian.org/debian/ jessie/main cryptsetup-bin amd64 2:1.6.6-5 [175 kB]
Get:13 http://download.ceph.com/debian-hammer/ jessie/main librbd1 amd64 0.94.6-1~bpo80+1 [2482 kB]
Get:14 http://download.ceph.com/debian-hammer/ jessie/main ceph-common amd64 0.94.6-1~bpo80+1 [6358 kB]
Get:15 http://download.ceph.com/debian-hammer/ jessie/main librados2 amd64 0.94.6-1~bpo80+1 [2371 kB]
Get:16 http://download.ceph.com/debian-hammer/ jessie/main python-rados amd64 0.94.6-1~bpo80+1 [799 kB]
Get:17 http://download.ceph.com/debian-hammer/ jessie/main python-cephfs amd64 0.94.6-1~bpo80+1 [791 kB]
Get:18 http://download.ceph.com/debian-hammer/ jessie/main python-rbd amd64 0.94.6-1~bpo80+1 [795 kB]
Get:19 http://download.ceph.com/debian-hammer/ jessie/main ceph amd64 0.94.6-1~bpo80+1 [11.7 MB]
Reading changelogs...
Fetched 30.6 MB in 7s (3970 kB/s)
Selecting previously unselected package libboost-program-options1.55.0:amd64.
(Reading database ... 38442 files and directories currently installed.)
Preparing to unpack .../libboost-program-options1.55.0_1.55.0+dfsg-3_amd64.deb ...
Unpacking libboost-program-options1.55.0:amd64 (1.55.0+dfsg-3) ...
Selecting previously unselected package libsnappy1.
Preparing to unpack .../libsnappy1_1.1.2-3_amd64.deb ...
Unpacking libsnappy1 (1.1.2-3) ...
Selecting previously unselected package libleveldb1:amd64.
Preparing to unpack .../libleveldb1_1.17-1_amd64.deb ...
Unpacking libleveldb1:amd64 (1.17-1) ...
Selecting previously unselected package uuid-runtime.
Preparing to unpack .../uuid-runtime_2.25.2-6_amd64.deb ...
Unpacking uuid-runtime (2.25.2-6) ...
Selecting previously unselected package libbabeltrace1:amd64.
Preparing to unpack .../libbabeltrace1_1.2.3-2_amd64.deb ...
Unpacking libbabeltrace1:amd64 (1.2.3-2) ...
Selecting previously unselected package libbabeltrace-ctf1:amd64.
Preparing to unpack .../libbabeltrace-ctf1_1.2.3-2_amd64.deb ...
Unpacking libbabeltrace-ctf1:amd64 (1.2.3-2) ...
Selecting previously unselected package liburcu2:amd64.
Preparing to unpack .../liburcu2_0.8.5-1_amd64.deb ...
Unpacking liburcu2:amd64 (0.8.5-1) ...
Selecting previously unselected package liblttng-ust-ctl2:amd64.
Preparing to unpack .../liblttng-ust-ctl2_2.5.0-1_amd64.deb ...
Unpacking liblttng-ust-ctl2:amd64 (2.5.0-1) ...
Selecting previously unselected package liblttng-ust0:amd64.
Preparing to unpack .../liblttng-ust0_2.5.0-1_amd64.deb ...
Unpacking liblttng-ust0:amd64 (2.5.0-1) ...
Selecting previously unselected package binutils.
Preparing to unpack .../binutils_2.25-5_amd64.deb ...
Unpacking binutils (2.25-5) ...
Preparing to unpack .../python-ceph_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking python-ceph (0.94.6-1~bpo80+1) over (0.80.7-2) ...
Preparing to unpack .../librbd1_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking librbd1 (0.94.6-1~bpo80+1) over (0.80.7-2) ...
Preparing to unpack .../ceph-common_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking ceph-common (0.94.6-1~bpo80+1) over (0.80.7-2) ...
Preparing to unpack .../librados2_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking librados2 (0.94.6-1~bpo80+1) over (0.80.7-2) ...
Selecting previously unselected package python-rados.
Preparing to unpack .../python-rados_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking python-rados (0.94.6-1~bpo80+1) ...
Selecting previously unselected package python-cephfs.
Preparing to unpack .../python-cephfs_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking python-cephfs (0.94.6-1~bpo80+1) ...
Selecting previously unselected package python-rbd.
Preparing to unpack .../python-rbd_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking python-rbd (0.94.6-1~bpo80+1) ...
Selecting previously unselected package cryptsetup-bin.
Preparing to unpack .../cryptsetup-bin_2%3a1.6.6-5_amd64.deb ...
Unpacking cryptsetup-bin (2:1.6.6-5) ...
Selecting previously unselected package ceph.
Preparing to unpack .../ceph_0.94.6-1~bpo80+1_amd64.deb ...
Unpacking ceph (0.94.6-1~bpo80+1) ...
Processing triggers for systemd (215-17+deb8u2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up libboost-program-options1.55.0:amd64 (1.55.0+dfsg-3) ...
Setting up libsnappy1 (1.1.2-3) ...
Setting up libleveldb1:amd64 (1.17-1) ...
Setting up uuid-runtime (2.25.2-6) ...
Adding group `uuidd' (GID 117) ...
Done.
Warning: The home dir /run/uuidd you specified can't be accessed: No such file or directory
Adding system user `uuidd' (UID 109) ...
Adding new user `uuidd' (UID 109) with group `uuidd' ...
Not creating home directory `/run/uuidd'.
Setting up libbabeltrace1:amd64 (1.2.3-2) ...
Setting up libbabeltrace-ctf1:amd64 (1.2.3-2) ...
Setting up liburcu2:amd64 (0.8.5-1) ...
Setting up liblttng-ust-ctl2:amd64 (2.5.0-1) ...
Setting up liblttng-ust0:amd64 (2.5.0-1) ...
Setting up binutils (2.25-5) ...
Setting up librados2 (0.94.6-1~bpo80+1) ...
Setting up python-rados (0.94.6-1~bpo80+1) ...
Setting up librbd1 (0.94.6-1~bpo80+1) ...
Setting up python-rbd (0.94.6-1~bpo80+1) ...
Setting up python-cephfs (0.94.6-1~bpo80+1) ...
Setting up python-ceph (0.94.6-1~bpo80+1) ...
Setting up ceph-common (0.94.6-1~bpo80+1) ...
Setting up cryptsetup-bin (2:1.6.6-5) ...
Setting up ceph (0.94.6-1~bpo80+1) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...
Processing triggers for systemd (215-17+deb8u2) ...

 

各ノードにCephをインストールしたら、Cephの初期設定を行う。ここから先はWEBコンソールからも行えるのだが、ここではコンソールで設定を進めてしまう。
クラスタ構成ノードのうち1台で、以下のコマンドを実行する。

pveceph init --network クラスタ用ネットワークアドレス/ネットマスク(CIDR)
root@BS-PUB-MICROSERVER-01:~# pveceph init --network 10.50.10.0/24
root@BS-PUB-MICROSERVER-01:~#

各ノードで以下のコマンドを実行し、Cephモニタを作成する。

pveceph createmon
root@BS-PUB-MICROSERVER-01:~# pveceph createmon
creating /etc/pve/priv/ceph.client.admin.keyring
monmaptool: monmap file /tmp/monmap
monmaptool: generated fsid 96985e9d-da2c-4346-81fe-9bf3a31f3eb9
epoch 0
fsid 96985e9d-da2c-4346-81fe-9bf3a31f3eb9
last_changed 2016-04-03 10:51:21.153636
created 2016-04-03 10:51:21.153636
0: 10.50.10.101:6789/0 mon.0
monmaptool: writing epoch 0 to /tmp/monmap (1 monitors)
ceph-mon: set fsid to 8ef6f21a-d2ab-47c5-b8c1-9b64000ffa1e
ceph-mon: created monfs at /var/lib/ceph/mon/ceph-0 for mon.0
=== mon.0 ===
Starting Ceph mon.0 on BS-PUB-MICROSERVER-01...
Running as unit ceph-mon.0.1459648281.649190238.service.
Starting ceph-create-keys on BS-PUB-MICROSERVER-01...

 

※なお、以下のようなエラーメッセージが出た場合は、「/etc/network/interfaces」の記述を確認すること。(末尾にスペースが入ってるだけでもエラー扱いになるため)

root@BS-PUB-MICROSERVER-03:~# pveceph createmon
unable to find local address within network '10.50.10.0/24'

 

クラスタモニタを作成したら、OSDの作成を行う。
ここでは、ジャーナル用に別のディスクは用いない事にする。

pveceph createosd /dev/sdb
root@BS-PUB-MICROSERVER-01:~# pveceph createosd /dev/sdb
create OSD on /dev/sdb (xfs)
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Creating new GPT entries.
The operation has completed successfully.
Setting name!
partNum is 1
REALLY setting name!
The operation has completed successfully.
Setting name!
partNum is 0
REALLY setting name!
The operation has completed successfully.
meta-data=/dev/sdb1              isize=2048   agcount=4, agsize=30196417 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=120785665, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=58977, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

 

後は、「/etc/pve/storage.cfg」に追記し、cephの鍵ファイルを所定の場所に配置するだけだ。

●/etc/pve/storage.cfg(追記部分のみ抜粋)

rbd: ceph-storage
        monhost 10.50.10.101;10.50.10.102;10.50.10.103
        username admin
        pool rbd
        content images,rootdir

 

Cephの鍵ファイルを配置する際に気をつけたいのが、鍵ファイル名はストレージID名+.keyringとなる点だ。
つまり、上の例だと「ceph-storage.keyring」が鍵ファイル名となる。

cd /etc/pve/priv/
mkdir ceph
cp /etc/ceph/ceph.client.admin.keyring ceph/ceph-storage.keyring

 

後は、WEBコンソールで普通にストレージとして利用すれば良い。

 

IT技術者なら知っておきたい ストレージの原則と技術 IT技術者なら知っておきたい ストレージの原則と技術

Proxmox VE 4.1でVM(KVM/OpenVZ)のシリアルポートに接続する

$
0
0

以前にVMWare ESXiで似たような設定をしていたが、Proxmox VEでも出来ないか調べてみた。
まぁ、流石に基本KVM(& OpenVZ)なので、問題なく設定できるようだ。

1.シリアルコンソールの追加

VMへシリアルコンソールを追加するのは簡単で、Proxmox VE 4.1のホストで、以下のコマンドを実行するだけだ。

qm set <VMID> -serial0 socket
root@BS-PUB-MICROSERVER-02:~# qm set 102 -serial0 socket
update VM 102: -serial0 socket

 

VMIDについては、シリアルコンソール接続を設定したいVMのIDを事前じ調べておくと良いだろう。
上記コマンドを実行後、仮想マシンのOSに応じてシリアルコンソール接続を有効にすればよい。CentOS 7であれば、こちらを参考にすると良いだろう。

なお、上記コマンド実行後に、再起動ではなく停止・起動を行う必要があるので注意。
(再起動だとシリアルコンソールの追加が認識されないため)

2.VMへシリアルコンソール接続

それでは、VMへシリアルコンソール接続を行おう。
接続は、以下のコマンドで行える。

qm terminal <VMID>
root@BS-PUB-MICROSERVER-02:~# qm terminal 102
starting serial terminal on interface serial0 (press control-O to exit)
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Import network configuration from initramfs...
         Starting Tell Plymouth To Write Out Runtime Data...
[  OK  ] Started Tell Plymouth To Write Out Runtime Data.
[  OK  ] Started Import network configuration from initramfs.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Create Volatile Files and Directories.
         Starting Security Auditing Service...
[  OK  ] Started Security Auditing Service.
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Basic System.
         Starting System Logging Service...
         Starting Permit User Sessions...
         Starting Dump dmesg to /var/log/dmesg...
         Starting firewalld - dynamic firewall daemon...
         Starting Login Service...
[  OK  ] Started irqbalance daemon.
         Starting irqbalance daemon...
[  OK  ] Started D-Bus System Message Bus.
         Starting D-Bus System Message Bus...
[  OK  ] Reached target Timers.
[  OK  ] Started System Logging Service.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Dump dmesg to /var/log/dmesg.
[  OK  ] Started Login Service.
         Starting Wait for Plymouth Boot Screen to Quit...
         Starting Terminate Plymouth Boot Screen...
[  OK  ] Started Command Scheduler.
         Starting Command Scheduler...

CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

localhost login:

 

無事、シリアルコンソール接続出来る事が確認出来た。
接続を切る場合は、「Ctrl + O」キーを押下すればよい。

 

iBUFFALO USBシリアルケーブル(USBtypeA to D-sub9ピン)1.0m ブラックスケルトン BSUSRC0610BS iBUFFALO USBシリアルケーブル(USBtypeA to D-sub9ピン)1.0m ブラックスケルトン BSUSRC0610BS

Proxmox VE 4.1でActive Directory連携を行う

$
0
0

Proxmox VE 4.1ではWebGUIから設定してActive Directory連携を行わせる事が出来る。
今回は、CentOS 7 + Samba4で作成したDomain ContollerとProxmox VE 4.1でこの連携を行う。

連携設定は簡単。
まず、[データセンター] > [認証] > [追加]で、Active Directoryを選択する。

20160414_000002

 

レルムやドメイン、DCサーバの情報などの環境情報を入力する。

20160414_000004

 

で、ここまでで終わるのかな?と思ってたのだが、どうやらグループやその権限、グループに所属するユーザとしてADのユーザも作らないといけないらしい。
という訳で、以下で作成していく。

■グループの作成

[データセンター] > [グループ] > [作成]から、グループを作成する。

20160414_000005

 

■グループの権限付与

[データセンター] > [アクセス権限] > [追加]から、[Group Permission]を選択して、以下のように権限を付与してあげる。

20160414_000006

20160414_000007

 

■ユーザの追加(パスワードは不要)

[データセンター] > [ユーザー] > [追加]から、Active Directory連携でログインするためのユーザを追加する。
なお、その際、レルムとグループの設定を忘れないようにし、パスワードについては連携がされるので気にしない事。

20160414_000008

 

後はログアウトして、ADのユーザでログインするだけだ。

 

絵で見てわかるWindowsインフラの仕組み 絵で見てわかるWindowsインフラの仕組み

Proxmox VE 4.1でファイアウォール(セキュリティグループ)の設定を行う

$
0
0

Proxmox VEでは、動作しているVMへのアクセスに対し、Proxmox側でファイアウォールの管理ができるようになっている。
今回は、このファイアウォール機能を実際に動作させてみる。

Proxmoxのファイアウォール機能は、データセンターで管理する。
まず、データセンターを選択し[Firewall] > [オプション] で、[Enable Firewall] を「はい」に切り替える(チェックを入れる)。

20160416_000003

 

次に、ファイアウォールを動作させたいVMを選択し、[Firewall] > [オプション] で、[Enable Firewall] を「はい」に切り替える(チェックを入れる)。

20160416_000004

 

その後、Rulesでルールの作成を行う。
[Firewall] > [Rules] から、[追加] を選択し、ルールの作成を行う。

20160417_000000

 

最後に、Rulesで対象としたインターフェイスでFirewallを有効にするだけだ。

20160417_000001

 

これで、対象のポート以外への通信などは制限させることができる。

接続するネットワークを制限する(Alias/IPSet)

FWで接続を許可するネットワークを指定する際、Aliasやそれを束ねたIPSetを事前に定義しておくことも出来る。
Aliasは[Firewall] > [Alias] からCIDR形式で[追加]を、IPSetは[Firewal] > [IPSet] で[作成] からIPSetを作成し、作成したIPSetにAliasを追加することで作成出来る。

作成したAliasやIPSetは、FirewallのRule作成時にDestinationで設定してあげればよい。

 

セキュリティグループを作成する

データセンター単位でセキュリティグループを作成しておくことで、後からVMを作成した際に簡単にFWの設定が行えるようになっている。
まず、[データセンター] > [Firewall] > [Secutiry Group] を選択し、グループを[作成]する。

20160417_000002

 

グループを作成したら、Rulesを [追加] から追加する。

20160417_000003

 

セキュリティグループを作成したら、そのセキュリティグループを適用したいVMを選択し、[Firewall] > [Rules] から [Insert: Security Group] で作成したセキュリティグループを追加する。
この時、適用するネットワークインターフェイスを設定すること。

20160417_000004

 

ヤマハ ファイアウォール FWX120 ヤマハ ファイアウォール FWX120
Viewing all 32 articles
Browse latest View live