2014年5月26日月曜日

MineCraftサーバーが落ちる件

MineCraftのサーバーを立てて
友達と一緒に遊ぼうと思って、

鯖立てにいざ挑戦。



結構沢山のサイトやブログで
サーバーの構築方法が紹介されてたので、
ここではその話はしません。









とあるブログで紹介されている手順に則って構築を進めたにも関わらず、
私の立てたサーバーでは
マルチプレイが出来ない!!

という状況に陥っており、
さらにそれに似た症状がなかなか検索に引っかからなかったので、
ここで記事にして残しておこうかな、と。




具体的な症状としては、

・サーバーは立てることに成功している。
・アンテナも立っている。
・自分でログインできる。
・外部(友達)からもログインできる。
・複数人(二人以上)入るとサーバーが落ちる。


といった具合です。



一つずつ見てきましょうか。

スペック不足?

まず真っ先に疑ったのが、
サーバーのスペック不足。

ソロには耐えられるが、複数人だと耐えられない、という理由で。


調べた所に依ると、
二人、三人くらいなら4GB程のメモリがあれば問題ないそうな。

私は4GB割り振っていたので、
まあ、おそらくこれが原因ではないでしょう。

CPUも
Corei7ですし、
安直ですが、多分これも原因ではない。






回線速度の問題?

次に疑ったのが、回線速度の問題です。


言い忘れてましたが、
サーバーが落ちる際にERRORと言われるのですが、
その内容が、

Internal exception: java.net.SocketTimeoutException: Read timed out

なるものなのです。
Time Out
つまりはしばらくサーバーからの応答が無いためにサーバーを落としますね。
という理由でサーバがストップしちゃってるんですね。


もしかしたら
回線速度が足りてないのかな??

と思い、
無線でやっていたものを有線に繋ぎ変えました。


それでもやっぱり複数人でログインした途端に落ちちゃう。

回線速度も問題ではなさそうだ。


整合性の問題?

つまり、私と友達との間で何かしら設定に矛盾が生じて
二人が同時に存在すると弾かれる、的な事かなー?ってね。


追加MODとかがちゃんとサーバー側とクライアント側で一致していなかったりすると
もしかしたらこうなるかもね。


まあ、結果として
私はそのパターンじゃなかったけどね。

設定に矛盾性は認められませんでしたよ。


バージョンもちゃんと揃えてたしね。









ようやく解決

ここまで来て
もう諦めようかな、と思っていたタイミングで
こんな記事を見つけました。

http://forum.minecraftuser.jp/viewtopic.php?f=7&t=19192

確かめてみた所、MODの導入環境こそ違うものの、
症状としては全く同じでした。




私が使っていたサーバー用jarファイルは
minecraftserver-mcpc-plus-164-R21-forge965-B220.jar
だったのですが、

どうやら、上記のリンク先のページに記述してある通り、
#251以降のバージョンでないとダメみたいですね。



なので、
新しいjarファイルを落として、Server用フォルダにコピー&ペースト。
起動用スクリプトの中身の
220 の部分を 最新('14/5/26現在)の 265に変えてやると

おおーー

治っちゃいましたーー。



たった二文字の変更で。。





これを追求するまでに相当遠回りしました。

ログファイルめっちゃ読んだ。
疲れた。w







結果報告

MCPC+でサーバーを立てている人は
MCPC+のバージョンに気をつけて下さい!!

minecraftserver-mcpc-plus-164-R21-forge965-B251←
最後に251ってあるでしょ。
あれよりも大きい数字が書かれているバージョンで使いましょう。

でないと
マルチプレイしたら死にます。(鯖が)





一人でも似たような症状の人がこの記事によって
救われる事を祈って。ww


以上です。






教訓

アップデートちゃんとしよう。(震え声)







追記(2015/2/26)
現在mcpc+は後続となるCauldronという名称になっています.
サーバー構築を考えている人はcauldronで検索!!

MacのWi-Fiが安定しない件

Macの無線がよく切れるので、対策を練ってみた。

これから行う作業は自己責任でお願いします、と。




簡単な話なんだが、
以下の4つのファイルを削除するだけ。
  • com.apple.airport.preferences.plist
  • com.apple.network.identification.plist
  • NetworkInterfaces.plist
  • preferences.plist

上記のファイルは
$ ls /Library/Preferences/SystemConfiguration/  
で確認できると思います。

OSに関するファイル等が含まれるフォルダなので
くれぐれも指定したファイル以外削除しないように注意。


削除の際は、
$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

$ sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

$ sudo rm /Library/Preferences/SystemConfiguration/preferences.plist

ですね。




こうすることによって
ネットワークに関するプロファイルを再構築するのです。

ちなみに、自分で構築したネットワーク環境も初期化されますので、ご注意。
VPNとか、その辺ね。



単純に
今入れている802.1Xの構成プロファイルのみを削除したい、ということなら

$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

だけで良かったと思います。




802.1Xの構成プロファイルの削除方法については
システム環境設定からも
別の方法で行えたと思いますが、

それでも出来なかったら
上記の方法で試すと良いかもしれません。






※ちゃんと削除した後はMacOSを再起動しましょう。

2014年3月22日土曜日

VM作成〜ネットワーク設定まで一連のまとめ








一度KVM上でVMを作成しましたが、
ぶっ壊すことになったので
最初から作り直し。

んで、
この際なのでね。

一連の行程をまとめて書いておきます。


再度壊すようなことがないように
バックアップ(ここではsnapshot)を取るところも含めてまとめます。



最初に

コマンドは文頭に#を置いて表現してます。
# vi /etc/'ファイル名' の様な表記の場合、
viコマンドを使用、' 'で囲まれた部分は適当な文字に置き換える、(その際は ' (←シングルクォーテーション)は省略してよい)という意味になります。

○ vi /etc/hogehoge.txt
× vi /etc/'hogehoge.txt'





環境

ホストOS側
# less /etc/os-release
NAME=Fedora
VERSION="20 (Heisenbug)"
ID=fedora
VERSION_ID=20
PRETTY_NAME="Fedora 20 (Heisenbug)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:20"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=20
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=20



ゲストOS
CentOS release 6.4 (Final)
.iso形式でOSイメージを手元に用意します。





VM作成

kvm環境は既に構築されてあるものとします。

イメージの作成

# qemu-img create -f qcow2 /mnt/naka_alti.img 1024G

naka_alti.imgというイメージを作成
最後の引数でsizeを指定してます。
この場合1TBのVMを作成するってことですね。

↓このようなものが出力されるはず。
Formatting '/mnt/naka_alti.img', fmt=qcow2 size=1099511627776 encryption=off cluster_size=65536 lazy_refcounts=off

/mnt以下に作ってますが、特に意味は無いです。
普通は/kvmの下とかに置くのかな?


次。


OSのインストール

# virt-install --connect qemu:///system \
--name naka_alti2 \
--vcpus 1 \
--ram=3072 \
--hvm \
--location /'CentOSのisoイメージのフルパス' \
--os-type=Linux \
--os-variant=virtio26 \
--disk=/mnt/naka_alti.img \
--accelerate \
--extra-args='console=tty0 console=ttyS0,115200n8'

見やすくするために
改行入れてます。

本当ならこんな感じ。
# virt-install --connect qemu:///system --name naka_alti2 --vcpus 1 --ram=3072 --hvm --location /'CentOSのisoイメージのフルパス' --os-type=Linux --os-variant=virtio26 --disk=/mnt/naka_alti.img --accelerate --extra-args='console=tty0 console=ttyS0,115200n8'


--name VMの名前の指定
--vcpus 仮想コア数
--ram  メモリ(単位はMB)
--hvm  完全仮想化
--location インストールするOSのイメージの場所の指定
--os-variant よく分かってない
--disk さっき作ったVMのイメージのパスを指定
--accelerate よく分かってない
--exrtra-args ゲストOSのコンソールを表示するための設定。これ書かないとゲスト側のコンソールが見れなくてかなり困る。







ゲストOS側のコンソールに切り替わる


インストール手順はこんな感じ

1.Disc Found画面が表示されるので、Skipを選択する。
2.Welcome to CentOS! の表示が出るのでOKを選択。
3.Language Selection画面では、jを押してjapaneseを選択してOKを押す。
4.Language Unavailableと出るが、OKを選択する。
5.Warning Error processing drive: と出たら、Re-initialize allを選択する。
6.Time Zone Selectionでは、SpaceでSystem clock uses UTCのチェックを外し、
Asia/Tokyoを選択してからOKを押す。
7.rootユーザーのパスワードを設定する。設定が完了したらOKを押す。
8.Partitioning Type画面が表示されたら、Use entire driveを選択する。
vda 20480 MB (Virtio Block Device)にチェックが入ってることを確認し、OKを押す。
9.Writing storage configuration to disk画面が表示されるので、Write changes to diskを選択する。
10.インストールが開始される
11.インストールが完了したら、Rebootを選択する。
12. localhost.localdomain login: が表示されたら、rootを入力
13. rootのpasswdを入力し、ログインする。




はい、ひとまずゲストOSのインストールは完了です。




ネットワーク設定


ホスト側のブリッジとかの設定は既に終えているものとします。
その辺は前のblogに書いてあったと思うし、省略。

ゲストOS側のネットワーク設定


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
HWADDR='自動入力されてる'
UUID='自動入力されてる'
ONBOOT=yes
NM_CONTROLLED=yes
IPV4_FAILURE_FATAL=no

NETWORK='192.168.xxx.xxx'
BROADCAST=192.168.xxx.255
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.xxx
GATEWAY=192.168.xxx.254

IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=xxxx:xxx:xx:xxxx::182/64
IPV6_DEFAULTGW=xxxx:xxx:xx:xxxx::1
IPV6_DEFAULTDEV=eth0



静的アドレス(static)を割り当ててます。
アドレスのとこの表記はてきとーです。
適切なアドレスを割り振って下さいな。





DNSサーバーの指定

# vi /etc/resolv.conf
nameserver 192.168.xx.2


これまた
アドレスはてきとーです。

適切な(ry






SELinuxの無効化


# vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled ←変更後
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted






ネットワークの起動とホスト名の指定


# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=naka_alti.server ←変更
NETWORKING_IPv6=yes  ←追記






ここで一度ネットワーク設定を適用させるために
serviceコマンドでネットワークを再起動させます。

# service network restart


stop してからの startでもいいけど。








userの追加

# useradd naka_alti
# passwd naka_alti
ユーザー naka_alti のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。



追加したuserをwheelグループに登録


# visudo

## Same thing without a password
# %wheel ALL=(ALL) ALL  ←変更



# vi /etc/group
wheel:x:10:root,naka_alti  ←変更






一旦rebootしておきますか。




まさかのエラー

dracut Warning: dracut: FATAL: Initial SELinux policy load failed. Machine in enforcing mode. To disable selinux, add selinux=0 to the kernel command line.
dracut Warning: dracut: Refusing to continue
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.32-358.el6.x86_64 #1
Call Trace:
[] ? panic+0xa7/0x16f
[] ? do_exit+0x862/0x870
[] ? fput+0x25/0x30
[] ? do_group_exit+0x58/0xd0
[] ? sys_exit_group+0x17/0x20
[] ? system_call_fastpath+0x16/0x1b


kernel panicだと。

実はSELinuxの設定の際に誤字がありましてこのような結果になったのだと後になって気付きました。
とりあえずこのときに取った対処法もまとめて書いておきます。




エラーの対処


ctl+]で一度抜けてホスト側に行く。
# virsh destroy naka_alti2

# virsh start naka_alti2
から速攻で
# virsh console naka_alti2
をやって、


GNU GRUB version 0.97 (639K lower / 3144696K upper memory)

+-------------------------------------------------------------------------+
| CentOS (2.6.32-358.el6.x86_64) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-------------------------------------------------------------------------+
Use the ^ and v keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, 'a' to modify the kernel arguments
before booting, or 'c' for a command-line.

この画面で e を押す。




GNU GRUB version 0.97 (639K lower / 3144696K upper memory)

+-------------------------------------------------------------------------+
| root (hd0,0) |
| kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv> |
| initrd /initramfs-2.6.32-358.el6.x86_64.img |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-------------------------------------------------------------------------+
Use the ^ and v keys to select which entry is highlighted.
Press 'b' to boot, 'e' to edit the selected command in the
boot sequence, 'c' for a command-line, 'o' to open a new line
after ('O' for before) the selected line, 'd' to remove the
selected line, or escape to go back to the main menu.

上から2つ目のkernelのとこで再度 e を。




[ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.  ESC at any time cancels.  ENTER
   at any time accepts your changes.]


<NG=ja_JP.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM enforcing=0  


最後のenforcing=0
ってのが追記した部分。

Enterで編集決定。
b でboot。

ログインできました。

なんだったんだろ。
なんか毎回kernel panicなるので
ならないように設定。
↑先ほど述べた様に、SELinuxの設定の際に(ry



# vi /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
serial --unit=0 --speed=115200
terminal --timeout=5 serial console
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto console=ttyS0,115200n8 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM enforcing=0   ←enforcing=0を追記
        initrd /initramfs-2.6.32-358.el6.x86_64.img



最後から2行目の最後に追記




これでrebootしても大丈夫。
↑先ほど述べた様に、SELinuxの(ry
なのでちゃんと設定ミスってなければrebootしてもこんなエラーは吐かれないでしょう。ね。






セキュリティ設定



# vi /etc/hosts.deny

#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
ALL: ALL



# vi /etc/hosts.allow

#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 192.168.xx.xxx/xx [xxxx:xxx:xx:xxxx::x/xx]


sshログインを許すアドレス帯を明記してくださいな。






バックアップをとる


OSを入れて、ネットワーク設定だけが済んだこの状態を保存しておいて
いつでもこの状態に戻せる様にバックアップを取っておきます。



ホストOSのvirsh状態に入って
まずVMを停める
# destroy naka_alti2

スナップショット(現在の状態のバックアップ)を取る。

# snapshot-create-as naka_alti2 naka2-init
ドメインのスナップショット naka2-init が作成されました

確認

# snapshot-list naka_alti2
名前 作成時間 状態
------------------------------------------------------------
naka2-init 2014-03-17 17:24:27 +0900 shutoff

適用するときは、これもVM停止中に、ホストOSのvirsh状態から
# snapshot-revert naka_alti2 naka2-init
をすると、VMがsnapshotを取った時の状態に戻ります。







snapshot自体はいくつも作れるみたいなので、
自分が残したいときの状態を残せるので便利です。

自分は環境構築のときにミスって要らないのをインストールしてしまったとき等に
これを使って後戻りできるようにする、みたいな使い方をしてます。

その方が楽だもんね。(´・ω・`)w

2014年3月13日木曜日

採掘始めました(´∀`)


えー、採掘、始めました。



まず採掘ってなんぞや、ってとこですよね。



はい、私も最近知ったばかりで
勉強中なのですが。


とりあえーず
ここ↓を読んで大雑把に理解。

まずは仮想通貨について。

んでもって、採掘とはなんぞや、ってとこを
ここ↓で理解してもらえれば。

ビットコインの採掘とは実際には何をしているのか?






んま、こんなの読んでられるかよめんどくせえ。

って人がほとんどだと思うので、
誤解を恐れずざっっっっっくりと書くと、


俺のPCの頭脳をちょっと貸してやるからお金くれ!!


ってやつだね。(違う)




何もしないで
お金が貯まるというのはそういうことです。

ただし、ここでいうお金って言うのは
仮想通貨ってやつであって、現金ではない。


いわゆる電子マネーに近い、形をもたない通貨っていう認識なのだけど
その表現が正しいのかは私もまだ定かではない。←







とりあえず採掘始めたんです。(諦め)




採掘スペックは
Corei7-4770k x 4つ

CPUでは最高峰だと思うが、
やっぱりGPUが欲しい。


GPUとCPUでは10倍近い採掘速度の差があるって聞くし。。



今の所、100 Khash/s くらい。

GPUだと
300Khash/sは固いと思ってるんだけど、どうなんだろ。

1万以内で買えるような雑魚GPUでもいいから買って試してみたい。




まあいいや、以下採掘にあたってのメモ。


採掘プール:Mona2 Monapool

あ、そうそう
私が狙ってるのはmonacoinです。
Bitcoinとは一応別物。


採掘環境
Core i7-4770k x4
Linux x64



まず最初に
walletなるものを作成する。

mac用とwin用があります。
私はmac用を使ってます。

macではアプリケーションという形で配布されてるので、
ダウンロードしてインストール。

設定で
パスフレーズを登録しておく。
まあ、財布だしね。


次にー、poolに登録。

このへんのやり方は調べれば結構出てきたので
割愛。

mona2poolに決定。

初心者向きだし、monacoin向きだし。


mona2poolにアカウントを作ったので、次はワーカーなるものを作成。
ワーカーは一つのアカウントに複数作成可能で、
手元のPCと職場のサーバーと友達のPCも勝手に拝借して、(←ひどい)等、
色んなとこで採掘がしたい場合にワーカーをそれぞれ割り当てて使う感じかな?



一応ワーカー2つ作ってるけど、
手元のPCじゃスペック足りなさすぎるので
動かしてるのはサーバーで今掘りまくってるワーカー1匹のみ。



CPUで採掘する場合とGPUで採掘する場合で、採掘に使用するプログラムが違います。

CGminerと
CPUminerと
何かあとひとつ、忘れた。

があって、
私はCPUで採掘をしているので、
CPUminerを使用。

linuxの64bit環境なので、
ちゃんとそれにあったCPUminerのプログラムをダウンロードして展開。

ダウンロード元は、えー、調べれば沢山出てきます。w
色んなとこで紹介されてるので。


展開すると
minerd という実行ファイルが出てきます。

ターミナルから実行コマンドを使うのですが、
私は外部のサーバーで動かしてるので、
scpコマンドで実行ファイルを送信、と。

実行コマンドはminerdファイルがあるディレクトリと同じ場所で行う必要があるのでね。


んで、コマンドはこれ。
./minerd -a scrypt -o stratum+tcp://mona2.monapool.com:6666 -t 4 -B -u (poolに登録したアカウント名).(作成したワーカー名) -p (ワーカー作成時に設定したpassword)

-a:アルゴリズムの指定。なんか掘るcoinによって変わるみたい。monacoinはscryptでいいと聞いた。

-t:スレッド数の指定。CPUを4つ動かしてるので4と指定。デフォルトでは自動で現在のCPUコア数が割り当てられるらしいけどね。ぜんぶで8個のCPU載せてて、それ全て使うのはちょっと問題がありまして、あえなく4つ。

-B:バックグラウンド指定。これで常に動いててくれます。止めたいときは私はtopコマンドでPID見て、killコマンドで止めてます。

-S:確かこのオプションでlogをどこか別のとこに吐いてくれるようになった気がする。そうしないとminerdの吐くlogで画面が埋まる、結構まじで。w




はい、これで
採掘は完了、じゃないか。

ワーカーにwalletのアドレスを渡して、掘った分を財布に送信してくれるように設定する必要もあります。
じゃないと財布に金が貯まらんぜよ。



一応この↓ページを見て私は全ての設定を終えました。
結構分かりやすいです。
参考にするといいと思います、このblogよりは確実に。

Monacoinの入手 - Pool(採掘場)の登録方法、利用方法





とまあ、こんな感じで採掘が始まったのですが、
もなとれにも登録したので、色々取引の勉強もしたいなーと思ってます。

ちなみに
採掘を初めておよそ14時間で5.4MONAです。

5.4MONA=¥22.97 ('14 3/13 20:10時現在)

てことは、1日あたり39.38円。ww

月で1220.78円w



はした金にしかなりません。w



まあ
もうちょっとスペック割り増しできそうな気もするので
今は完全にお遊び感覚でやってます。



とりあえずは
財布が少しずつ膨らんで行く感覚を楽しむ。w




何か進展があれば
またここにメモる。

以上。

vm作成成功〜ネットワークやらその他周辺の設定

~前回の続き〜
virt-installをしても
コンソールが出てこなかったので
vncを使うのを諦めた。


以下進捗です


VM作成のコマンド

virt-install --connect qemu:///system \
--name 'VMの名前' \
--vcpus 1 \
--ram=4096 \
--hvm \
--location 'ディスクイメージのフルパス' \
--os-type=Linux \
--os-variant=virtio26 \
--disk='仮想マシンのイメージのフルパス' \
--accelerate \
--extra-args='console=tty0 console=ttyS0,115200n8'


最後の行で
コンソール自体をそのままターミナル上に出力するようにしている。



↓続き



OSのインストール手順


1.Disc Found画面が表示されるので、Skipを選択する。
2.Welcome to CentOS! の表示が出るのでOKを選択。
3.Language Selection画面では、jを押してjapaneseを選択してOKを押す。
4.Language Unavailableと出るが、OKを選択する。
5.Warning Error processing drive: と出たら、Re-initialize allを選択する。
6.Time Zone Selectionでは、SpaceでSystem clock uses UTCのチェックを外し、
Asia/Tokyoを選択してからOKを押す。
7.rootユーザーのパスワードを設定する。設定が完了したらOKを押す。
8.Partitioning Type画面が表示されたら、Use entire driveを選択する。
vda 20480 MB (Virtio Block Device)にチェックが入ってることを確認し、OKを押す。
9.Writing storage configuration to disk画面が表示されるので、Write changes to diskを選択する。
10.インストールが開始される
11.インストールが完了したら、Rebootを選択する。
12. localhost.localdomain login: が表示されたら、rootを入力
13. rootのpasswdを入力し、ログインする。



ネットワーク設定


ホストOS側

/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
USERCTL=no

IPADDR=133.13.54.180
NETMASK=255.255.255.128
GATEWAY=133.13.54.254
IPV6_AUTOCONF=no
IPV6ADDR=2001:2f8:1c:a518::180/64
IPV6_DEFAULTGW=2001:2f8:1c:a518::1


/etc/ifcfg-em1の編集

DEVICE=em1  ←fedoraでは最近はeth0がem1となっているらしい。
ONBOOT=yes
BRIDGE=br0
HWADDR=94:DE:80:A7:A5:F9


/etc/sysconfig/networkの編集

NETWORKING=yes
NETWORKING_IPV6=yes


NAT用に自動で作られたvirbr0を消す

#brctl show

# virsh net-autostart default --disable
# virsh net-destroy default

#brctl show
virbr0が消えます。


# service network restart



ゲストOS側


/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
HWADDR='MACアドレス'  ←自動入力されてる。
UUID='UUID'    ←自動入力されてる。
ONBOOT=yes
NM_CONTROLLED=yes
DEFROUTE=yes
IPV4_FAILURE_FATAL=no

NETWORK='ネットワークアドレス'
BROADCAST='ブロードキャストアドレス'
IPADDR='ホストOSのbr0にあるアドレスと同帯のアドレスを割り当てる'
NETMASK='ネットマスク'
GATEWAY='ゲートウェイ'

IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR='IPv6アドレス'
IPV6_DEFAULTGW='IPv6のデフォルトゲートウェイ'
IPV6_DEFAULTDEV=eth0



/etc/resolve.confの編集

nameserver 'nameサーバーのアドレス'




rootユーザしかいないので、ユーザーの追加


# useradd '追加するユーザ名'
# passwd '追加するユーザ名'
Changing password for user '??????'.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

追加したユーザーがsudoを使えるようにする。sudoの設定をするにはvisudoコマンドを使う。

# visudo

%wheel ALL=(ALL) ALL
追加したユーザーをwheelグループに追加する

# vi /etc/group

wheel:x:10:root,'追加するユーザ名'




必要とあらば、
$ yum search openssh
$ yum install openssh-server

なんか私のには最初から入ってたんだよね、sshが。

※追記:scpコマンドを使うにはopenssh-clientsが必要らしいので、それも入れましょ。


セキュリティ強化

rootログインの禁止

# vi /etc/ssh/sshd_config
PermitRootLogin yes → no

/etc/hosts.{host|deny}の設定

$ vi /etc/hosts.deny
ALL: ALL
$vi /etc/hosts.allow
省略



その他。intelliparkの無効化とか。


$ yum install tar gcc
tarはtgzの解答に、gccはmakeに必要です。


wgetがないので curl でファイルをダウンロードしましょう

$ curl -L -O http://sourceforge.net/projects/idle3-tools/files/idle3-tools-0.9.1.tgz/download

makeする

downloadという名前はややこしいので変更
$ mv download idle3-tools-0.9.1.tgz
make
$ tar zxvf idle3-tools-0.9.1.tgz
$ cd idle3-tools-0.9.1.tgz
$ make

idle3-toolsの使い方

$ ./idle3ctl -g /dev/sd? #現状の設定確認
$ ./idle3ctl -d /dev/sd? #intelliparkの無効化
$ ./idle3ctl -s [0-255] /dev/sd? #intelliparkの秒数を設定

ただ、
ホストOSの方でこれやってるから
ゲストOS側ではやらなくていいんじゃね?



あと適当に
必要そうなやつ。

# yum install autoconf preferably automake wget libcurl-devel

個人的にhtopは好きなので、入れときましょ。w

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -Uhv rpmforge-release*.rf.x86_64.rpm
# yum install htop
でhtopのインストールが完了、と。


こんくらいかなー。

2014年3月9日日曜日

ただのメモです。

個人的メモ



環境

ホストOS linux 3.11.10-301.fc20.x86_64

ゲストOS CentOS 6.3



yum大会

% yum groupinstall "Virtualization" "Virtualization Client"  "Virtualization Platform" "Virtualization Tools"
↑何かいくつか無いやつもあったような..
% yum install kvm virt-manager libvirt qumu-img 


これだけあれば足りる、、のか?





イメージの作成 

% qemu-img create -f qcow2 /mnt/aiueo.img 32G
例です、作成する大きさの指定。
qcow2で作成する。
イメージが拡張される際に挙動が遅くなる点以外ではメリットだらけ、らしい。









OSのインストール

% virt-install \
--connect qemu:///system \
--name=naka \
--ram=2048 \
--disk=/mnt/aiueo.img \
--vcpus=2 \
--os-type=linux \
--os-variant=virtio26 \
--network bridge=br0 \
--accelerate \
--hvm \
--location http://ftp.iij.ad.jp/pub/linux/centos/6.3/os/x86_64/ \
--graphics vnc,port=5900,listen=0.0.0.0,password=hogehoge \



--name 名前の指定
--ram メモリの大きさの指定
--disk 先ほどつくったやつをフルパスで指定
--vcpus コア数
--os-variant よく分かってない←
--accelerate
--hvm 完全仮想化
--location 今回入れるosがあるurlですね, Centosの6.3,x86_64
--graphics ここでvncの設定というかゲストOSのコンソールを見る為になんちゃらみたいなことらしいのだが...




実行結果
インストールの開始中...
ファイル .treeinfo を読出中...                                                                                             |  728 B  00:00:00 !!!
ファイル vmlinuz を読出中...                                                                                               | 7.9 MB  00:00:03 !!!
ファイル initrd.img を読出中...                                                                                            |  64 MB  00:00:04 !!!
ERROR    'br0' においてインターフェースの MTU を取得できません: そのようなデバイスはありません
仮想マシンのインストールが成功したように見えません。
成功したのならば、次のように実行することにより、仮想マシンを再起動できます:
  virsh --connect qemu:///system start naka
そうでなければ、インストールを再起動してください。

まあそう容易く行くとは思ってないけどね。


% ls /etc/sysconfig/network-scripts/
ifdown-bnep  ifdown-isdn    ifdown-sit     ifup-bnep  ifup-ipx    ifup-post    ifup-tunnel        network-functions-ipv6
ifcfg-em1  ifdown-eth   ifdown-post    ifdown-tunnel  ifup-eth   ifup-isdn   ifup-ppp     ifup-wireless
ifcfg-lo   ifdown-ippp  ifdown-ppp     ifup           ifup-ippp  ifup-plip   ifup-routes  init.ipv6-global
ifdown     ifdown-ipv6  ifdown-routes  ifup-aliases   ifup-ipv6  ifup-plusb  ifup-sit     network-functions

ifcfg-br0がないですね、と。
なので作成。


% vim ifcfg-br0

#/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=dhcp

ぶっちゃけ適当に作ったけどこれでいいのか分からん。

% service network restart
設定の反映

んで再度
% virt-install (以下略

結果
インストールの開始中...
ファイル .treeinfo を読出中...                                                                                             |  728 B  00:00:00 !!!
ファイル vmlinuz を読出中...                                                                                               | 7.9 MB  00:00:01 !!!
ファイル initrd.img を読出中...                                                                                            |  64 MB  00:00:06 !!!
ドメインを作成中...                                                                                                        |    0 B  00:00:00
Unable to init server
ディスプレイをオープンできません:
利用可能なコマンドラインオプションの完全な一覧を確認するには 'virt-viewer --help' を実行してください
仮想マシンのインストールが進行中です。インストールが完了するまでコンソールの再接続を待っています。

はい、ちょっと意味分かんないです。

% virsh
virsh # lisst
virsh # list
 Id    名前                         状態
----------------------------------------------------
 7     naka                        実行中

virsh # console naka
ドメイン naka に接続しました
エスケープ文字は ^] です


とは出るんだが、コンソール出ないし何なの。
^]するしか選択肢ないっていう。
さっき書いた
vncがどうのこうのってのがここでの話なのだけど、まだどういうことなのか分かってないので今調査中。


んー、vncとか使わないで直接sshしたいんだけど
まだ出来てないのかなーこれ。
コンソールが見れてないだけなのか、そもそもvirt-installの時点で上手く行ってないのか。
どっちですかい。

ifcfg-br0の中でアドレス与えてネットワークの設定ちゃんと入れれば
ssh出来る様になるのかな。。

まあ色々やってみますか。