Midnightjapan

Linux

CentOS6.2 on VirtualBox4.1.8 for Windows

by jun on 5月.24, 2012, under Linux

理由はどうあれ、あらたなサーバーシステムを構築するプロジェクトを開始した。

どちらかというとサーバータイプではなく、可搬性にすぐれ、クライアントのよくつかうサーバー環境を節電しながら利用するサーバーを考えた結果、以前から運用試験していたVirtualBoxを使った仮想システムをUSBメモリ上に配置し、HAサーバーを展開するというプロジェクト。

いまさらやっつけ感もあるが、大規模で安定したサーバーを構築するよりも、もっと身近で安価でコンパクトなサーバー環境がほしくなったのわけです。

耐用年数は低いですが、コスパは高い。1度構築するとイメージを複製することで増殖可能。

SOHO的には実用性が非常に高い。

そんなわけでまずはシステムのセットアップからはじめました。

VirtualBox 4 にCentOS6.2をセットアップする際のメモ。

  1. CentOSで自宅サーバー構築:CentOS 6インストールまたははじめての自宅サーバ構築:CentOS6 のインストールを見ながらインストールする。VirtualBoxの設定方法はたびたびまとめているので今回は省略します。
  2. kdumpでエラーが発生しますが、既知のバグなのでインストール時は飛ばします。
  3. インストールとネットワークの設定が終わったら再起動します。
  4. 必要なライブラリをインストール
    [管理者@vbox] # yum install gcc make kernel-devel
  5. カーネルのバージョンをあげたら再起動します。
    [管理者@vbox] # reboot
  6. Guest Additions のインストールを実行。詳細は省略しますが、ほぼ全自動で自動起動を実行してOK。
    [管理者@vbox] # Verifying archive integrity... All good.
    Uncompressing VirtualBox 4.1.8 Guest Additions for Linux.........
    VirtualBox Guest Additions installer
    Removing installed version 4.1.8 of VirtualBox Guest Additions...
    Removing existing VirtualBox DKMS kernel modules           [  OK  ]
    Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
    Building the VirtualBox Guest Additions kernel modules
    Building the main Guest Additions module                   [  OK  ]
    Building the shared folder support module                  [  OK  ]
    Building the OpenGL support module                         [失敗]
    (Look at /var/log/vboxadd-install.log to find out what went wrong)
    Doing non-kernel setup of the Guest Additions              [  OK  ]
    Installing the Window System drivers
    Installing X.Org Server 1.10 modules                       [  OK  ]
    Setting up the Window System to use the Guest Additions    [  OK  ]
    You may need to restart the hal service and the Window System (or just restart
    the guest system) to enable the Guest Additions.
    
    Installing graphics libraries and desktop services componen[  OK  ]
    Press Return to close this window...
  7. OpenGLで失敗するので、パッチをあてます。詳細はhirokan55の日記:CentOS 6.2にVirtualBox Guest Additionsをインストールメモを参照
  8. もう一度Guest Additionsをインストールします。エラーがなければ成功。

実に快適なGUI環境になった。

いままでのCentOSはCUIでGuestAdditionもどうでもいいくらいだったが、非常にすっきりと軽量咲かれたGUIにGuestAdditionをインストールすることで、さらにいい感じに。

次はサーバーシステムを構築していきます。

具体的な内容は非公開になるかもしれませんが、とにかくProject開始です。

    コメントなし :, more...

    Heartbeat の安全な停止方法

    by jun on 7月.26, 2011, under Linux, Mysql, PHP, Programing

    1号機(プライマリー) 2号機(セカンダリー)として稼働中のDRBD+Heartbeat(HAクラスタシステム)を構築している。
    これを安全に停止するための自己記録である。

    まず2号機にログインして管理者になり[Heartbeat]を停止する。

    [管理者@2号機] # /etc/rc.d/init.d/heartbeat stop

    これで、2号機が停止したら1号機にログインして管理者になり[Heartbeat]を停止する。

    [管理者@1号機] # /etc/rc.d/init.d/heartbeat stop

    ※ 深夜の気が向いたときしかやりたくないので、ついここで、rootにならずにやって、サブシステムがロックしているとか、よくわからないエラーがでてしまい、余計な時間がかかることがあるが、rootになっていれば問題はおきるわけがない。

    つづいて、[Heartbeat]がとまったことでDRBDもこのようになっている。

    [管理者@1号機] # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ************************* build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs         ro                   ds                 p  mounted  fstype
    0:r0   Connected  Secondary/Secondary  UpToDate/UpToDate  C

    そこでこのようにプライマリーにしてマウントする

    [管理者@1号機] # drbdadm primary all
    [root@winsor ~]# /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ************************* build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs         ro                 ds                 p  mounted  fstype
    0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C
    [管理者@1号機] # mount /dev/drbd0 /マウントしたいパス

    これで安全に停止してメンテナンスが可能です。

    ささ、MySQLのバックアップやディスク容量の増加など完了しました。
    今度はちゃんと元にもどしましょう。

    まず1号機にログインして管理者になり[Heartbeat]を開始する。

    [管理者@1号機] # /etc/rc.d/init.d/heartbeat start

    つぎに2号機にログインして管理者になり[Heartbeat]を開始する。

    [管理者@2号機] # /etc/rc.d/init.d/heartbeat start

    そしたらあわてずに待つ。
    1号機2号機どちらでもかまわないが[Heartbeat]のステータスを表示する。
    一応プライマリーの1号機でみてみることにする。

    [管理者@1号機] # crm_mon
    Defaulting to one-shot mode
    You need to have curses available at compile time to enable console mode
    
    ============
    Last updated: Tue Jul -- --:--:-- ----
    Current DC: NONE
    2 Nodes configured.
    1 Resources configured.
    ============
    
    Node: 1号機.lan (***********************************************): OFFLINE
    Node: 2号機.lan (***********************************************): OFFLINE

    じっくりね。結構この状態が続いて、あせることがあるかもしれないけど、あわてない。
    そして1分から2分後

    [管理者@1号機] # crm_mon
    Defaulting to one-shot mode
    You need to have curses available at compile time to enable console mode
    
    ============
    Last updated: Tue Jul -- --:--:-- ----
    Current DC: 1号機.lan (***********************************************)
    2 Nodes configured.
    1 Resources configured.
    ============
    
    Node: 1号機.lan (***********************************************): online
    Node: 2号機.lan (***********************************************): online
    
    Resource Group: group_1
        IPaddr2_1   (heartbeat::ocf:IPaddr2):       Started 1号機.lan
        MailTo_2    (heartbeat::ocf:MailTo):        Started 1号機.lan
        drbddisk_3  (heartbeat:drbddisk):   Started 1号機.lan
        Filesystem_4        (heartbeat::ocf:Filesystem):    Started 1号機.lan
        httpd_5     (lsb:httpd):    Started 1号機.lan
        mysqld_6    (lsb:mysqld):   Started 1号機.lan

    ふぅ、一安心。たまにしかやらないから、余計ね。ご苦労様でした _(._.)_

    コメントなし :, , more...

    DRBDの復旧

    by jun on 6月.21, 2011, under Linux

    DRBDが下記のようになった。

    フェイルオーバーしてセカンダリーへ
    その後プライマリー復旧してみてみるとDRBDがこのようになっている。

    プライマリー側

    # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs          ro                 ds                 p      mounted  fstype
    0:r0   StandAlone  Secondary/Unknown  UpToDate/DUnknown  r----

    セカンダリー側

    # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs          ro               ds                 p      mounted  fstype
    0:r0   StandAlone  Primary/Unknown  UpToDate/DUnknown  r----  ext3

    フェイルバックはわざと手動にしてある。

    もちろん便利はわかっているが正常にデータがセカンダリーと同期するかについては不明なので自動はお断り。

    双方でHeartbeatとDRBDを停止して再起動しても変わらない。

    そこで、復旧に取り掛かる。

    まずはプライマリーを停止。

    セカンダリーを起動。

    # drbdadm secondary all
    # drbdadm down all
    # drbdadm cstate all
    WFConnection
    # drbdadm attach all
    # drbdadm invalidate all
    # drbdadm connect all
    

    ん?接続に問題がでていると。接続を試みてくれた。Standaloneじゃなくなってくれた。当たり前かw

    セカンダリーの状態

    # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs            ro                 ds                 p  mounted  fstype
    0:r0   WFConnection  Secondary/Unknown  UpToDate/DUnknown  C

    プライマリー側起動

    # /etc/rc.d/init.d/drbd start
    Starting DRBD resources: [
    r0
    Found valid meta data in the expected location, 1073737728 bytes into /dev/VolGroup00/lvol0.
    d(r0) s(r0) n(r0) ].

    そこで確認してみると

    # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs          ro                   ds                     p             mounted  fstype
    0:r0   SyncSource  Secondary/Secondary  UpToDate/Inconsistent  C
    ...    sync'ed:    57.1%                (454140/1048508)K      delay_probe:

    ぉぃまてゴルァw

    おまえはプライマリーだろってことであわてて

    # drbdadm primary all
    # /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: ***** build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs         ro                 ds                 p  mounted  fstype
    0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

    やっと接続された。

    そこでプライマリー側でマウントしてみる。

    # mount /dev/drbd0 /mnt
    /etc/rc.d/init.d/drbd status
    drbd driver loaded OK; device status:
    version: 8.3.8 (api:88/proto:86-94)
    GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
    m:res  cs         ro                 ds                 p  mounted  fstype
    0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /mnt     ext3

    無事にマウントしたようだ。

    コメントなし :, more...

    CentOS5.5(64bit)にPPTPサーバーを構築

    by jun on 6月.09, 2011, under Linux

    CentOS5.5(64bit)にPPTPサーバーを構築します。

    あちこちの情報見ながらなので、正確でない情報があったらごめんなさい。

    まずはPPTPDの最新版をとってきます。

    # wget http://downloads.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz

    「CentOS5の場合、pppのバージョンが2.4.4の為、このままパッケージ化してインストールすると下記のようなエラーが発生する。」
    との情報を得たため、書いてある通りに修正する。
    まずは解凍し、予めPPPの2.4.4で使用出来るようspecファイルを編集する必要がある。

    # tar zxvf pptpd-1.3.4.tar.gz
    # vi pptpd-1.3.4/pptpd.spec

    57行目付近を下記のように編集する。

    (echo '#undef VERSION'; echo '#define VERSION "2.4.3"') >> plugins/patchlevel.h
          ↓
    (echo '#undef VERSION'; echo '#define VERSION "2.4.4"') >> plugins/patchlevel.h

    編集後再度アーカイブする

    # tar zcvf pptpd-1.3.4.tar.gz pptpd-1.3.4

    アーカイブからRPMパッケージを作成

    # rpmbuild -ta --target x86_64 pptpd-1.3.4.tar.gz
    # mv /usr/src/redhat/RPMS/x86_64/pptpd-* . (出来上がったパッケージを移動)

    ここまででCentOS5.5用 64bit PPTPサーバーのRPMパッケージが完成。

    PPTPとPPPパッケージをインストールする

    # yum install ppp dkms -y
    # rpm -ivh pptpd-1.3.4-1.x86_64.rpm

    ひと段落したら、設定ファイルを編集します。

    設定ファイル1:etc/pptpd.conf

    # vi /etc/pptpd.conf

    最終行に下記を入力する

    localip サーバのIP
    remoteip PPTPクライアントに割り当てるスコープ
    例:
    localip 192.168.0.254
    remoteip 192.168.0.100-110

    設定ファイル2:/etc/ppp/options.pptpd

    # vi /etc/ppp/options.pptpd

    18行目付近にあるname項目を編集する

    name
    ↓
    name 任意の文字列(ホスト名等)
    例:
    name pptpserver

    設定ファイル3:/etc/ppp/chap-secrets

    # vi /etc/ppp/chap-secrets

    ユーザ名とパスワードを設定する

    # Secrets for authentication using CHAP
    # client        server  secret                  IP addresses
    ####### redhat-config-network will overwrite this part!!! (begin) ##########
    midnightjapan      pptpserver      "*****"       *
    ####### redhat-config-network will overwrite this part!!! (end) ############

    設定ファイル4:/etc/sysctl.conf

    # vi /etc/ppp/chap-secrets

    ip_forwardを許可する

    # Kernel sysctl configuration file for Red Hat Linux
    #
    # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
    # sysctl.conf(5) for more details.
    
    # Controls IP packet forwarding
    net.ipv4.ip_forward = 0 →これを1に変更

    sysctl.confの変更を適用する

    # vi /etc/ppp/chap-secrets

    設定ファイル5:/etc/modprobe.conf の設定

    # vi /etc/modprobe.conf 

    pppオプションを設定する

    # PPTPD Setting
    alias char-major-108 ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-14 ppp_synctty
    alias ppp-compress-18 ppp_mppe
    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate
    alias net-pf-47 ip_gre

    設定ファイル6:iptablesなどのファイアウォールを開通させる

    iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
    iptables -A INPUT -p gre -j ACCEPT
    iptables -A INPUT -i ppp+ -j ACCEPT
    iptables -A FORWARD -i ppp+ -j ACCEPT

    設定ここまで


    ひと段落したら起動して起動確認

    PPTP起動

    # /etc/init.d/pptpd start
    # chkconfig pptpd on

    もちろん、ルーターからのアクセスをなんとかしなければね。
    私はポートフォワードで対応しましたよ。

    コメントなし :, , more...

    VMwareServer2.0.2 Linux のリモートコンソールをVMware Playerで高速化

    by jun on 5月.12, 2011, under Linux, Windows

    CentOS 5.5(Final) 64bit-Kernel2.6.18

    このサーバー上で運用している仮想サーバーアプライアンス

    VMware Server 2.0.2 for Linux 64bit版

    これを下記のクライアントから利用する。

    Windows7 64bit

    通常この場合はIEを互換モードにしてVMware Infrastructure WebAccessにログインして64bit独特の問題を解消してゴニョゴニョからリモートコンソールというソフトで利用する。

    が・・・あちこちで遅いのでVMware Playerを利用するという紹介があったのでやってみた。

    紹介の中では64bitじゃなかったり、バージョンが違ったりしていたので、この構成での明確な方法を記述する。

    なお、すでにWindows7でVMware Remote Console Plug-inのショートカットができあがっているものを、VMware Playerで利用する方法として記述する。

    1)下記の最新版 VMware Playerをダウンロード&インストール

    VMware Player3.1.4?(32 ビットおよび 64 ビット版) for ?Windows

    2)すでに作ってあるVMware Remote Console Plug-inのショートカットのプロパティを開く。(すでにゴニョゴニョしてあるので標準とは違うことを知っておいてください)

    "C:\Program Files (x86)\Common Files\VMware\VMware Remote Console Plug-in\vmware-vmrc.exe" -h <ホスト名>:8333 -M 16

    「<ホスト名>:8333」 の後の「-M 16」がなにをさすかわからないが、私の環境では2台分の仮想ホストが稼働しているが、その管理番号のようなものらしい。

    このショートカットをRemoteConsoleではなく下記のようにVMware Playerにしてあげます。

    "C:\Program Files (x86)\VMware\VMware Player\vmplayer.exe" -h <ホスト名>:8333 -M 16

    どうでしょ?

    VPN接続なので一般的な速度じゃありませんが、ログイン画面がでてくるまでの時間です。

    VMwareRemote Console = 15秒

    VMwarePlayer =2秒

    なるほど、早いもんだ。

    コメントなし :, , , more...

    

    何かお探しですか?

    以下にキーワードを入力してサイト内検索が可能です:

    Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!