ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
検索
オンライン状況
13 人のユーザが現在オンラインです。 (2 人のユーザが ニュース を参照しています。)

登録ユーザ: 0
ゲスト: 13

もっと...
投稿者: f-otake 投稿日時: 2016-6-14 20:43:31 (7328 ヒット)
Linux (サーバー制作)

KVMを使用して普通にサブホストを作ると、領域1(イメージファイルやLVM)の中にさらに領域2を作って(複数の領域を作れるようにする為?、ルートやスワップなどの複数の領域為?)しまいます。画像0
ここで一番問題になるのはバックアップの方法です。私はbaculaを使用し、サブホストをバックアップしていますが、これでは完全なバックアップになりません。というのもこのバックアップは領域1の中の領域2をバックアップしているので、baculaでリストアしてもそのリストアしたデーター(領域2)をさらに領域1の中に入れ込まなければ、完全なサブホストのバックアップになりません。私はその方法が解りません(ddコマンドで作れそうですが??)
なので、一度作成したサブホストを、カーネルイメージから直接起動する様に変更しました。これでbaculaでリストアされたサブホストもそのままリストアできます。(領域の中に入れ込まなくてもよい)
只,わたしはKVMを正式に勉強したわけではなく、又、真剣にググった訳でもないので、かなりいい加減です(でもちゃんと動いています)
その過程の中で疑問に思ったのが、
仮想マシンマネージャーで、サブホストを指定し、開くアイコンをクリックし、開いたウィンドウの電球アイコンをクリックし、左ペインの Boot Options をクリックし、さらに右ペインで、Direct kernel boot をクリックすると展開された中に Kernel path:、initrd path:、kernel auguments: があり、最初の二つには Browse アイコンがあります。画面1。そこで、それらを選べますが、
ここで問題!この時点での作業はメインのOSでしているので、ブラウズ出来るのはメインの中だけです(サブホストはマウントされてない)でもサブホストの指定だよなー?
と言う訳で実験
1:メインのホストとサブホストに同じバージョンを入れる
 例:Kernel path: /boot/vmlinuz-2.6.32-642.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-642.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 ブートOK
2:メインのホストにはあるがサブホストにはない場合
 例:Kernel path: /boot/vmlinuz-2.6.32-573.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-573.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 途中で could not load /lib/modules/2.6.32-573.el6.x86_64/modules.dep: No such file or directory
 と表示されログイン出来る状態だが、まともに動かない筈。どういう事か、最初のブートではメインの/bootを見て,途中からサブホストの/libを見にいくが、サブホストにはないのでエラーとなっている。

3:サブホストにはあるがメインのホストにはない場合
 例:Kernel path: /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 ブートすらしない。
 Errot starting domain: unable to set user and group to '107:107' on '/boot/vmlinuz-2.6.32-642.1.1.el6.x86_64': No such directory
 と表示されブートが止まる。

ということは最初はメインのOSの /bootを見て、途中からサブホストを見ていることになると思う。
と言う訳でここから作業
まず、サブホストのvdaに指定される領域(私はLVM)をddコマンドでバックアップ
# dd if=vdaに指定されている領域 of=バックアップを保存する領域
サブホストのルート領域をマウントしますが、前に触れたようにこの中にさらに領域を作っているので
# lesetup -f
で使える最初のloop番号を調べる。何もしていなければloop0の筈
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
# ls /dev/mapper
で展開された領域を調べる、loop0p1やloop0p2 等がある筈、私はここにはルート領域のみしか作っておらず、スワップや他の領域は別のlvでマウントしているので、あるのはloop0p1だけ
# mount /dev/mapper/loop0p1 /test1 ← 私はテスト用にこのdirectoryを作っている
これでサブホストのルート領域が/test1にマウントされた。私は/bootは別の領域にせず全部ここに入っている。
次にサブホストに使っている領域をフォーマット(私はLVM)
# mkfs.ext4 /dev/VG名/LV名
これで、このままではサブホストを二度と起動で出来ない!
# mount /dev/VG名/LV名 /test2 ← 私はテスト用にこのdirectoryを作っている
# cd /test1
# cp -pr ./ /test2
これで、しばらくするとコピーが終わるので、後処理
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
これで準備が出来たので、前項の 1:メインのホストとサブホストに同じバージョンを入れる と同じように(もちろんカーネルバージョン等は自分にあわせる)Direct kernel boot を設定する。
尚、Kernel arguments: にvda になっているのは、DISK1 に VirtIOを指定している為、ここがIDEだと違うはず、/etc/libvirt/qemu/サブホストxml を見れば指定が解る。
これでサブホストを起動すれば問題ない。
2016ー6ー16追記:大嘘を言っていました。このままでは起動できません。と言うのもフォーマットをするとディスクのUUIDが変わり、grub.confにあるブートdiskが古いUUIDのままだからです。と言う訳でgrub.confを修正しますが、この際UUIDでなく、ディスク(vda)の指定にします。と言うのもサブホストのルートのディスクはVirtIOを使用し、素直に作ると、必ずvda になるからです。ですので再度マウントし、編集します。
# mount /dev/VG名/LV名 /test2
# gedit /test2/boot/grub/grub.conf

抜粋
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-642.1.1.el6.x86_64)
 	root (hd0,0)
	kernel /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64 ro 本当はここから次のタイトルの前までは1行
    root=UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda ここを変更する
        rd_NO_LUKS LANG=ja_JP.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16
        crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet
        enforcing=0 	initrd /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
title CentOS (2.6.32-573.26.1.el6.x86_64)
以下省略、注:root=の指定は他にもあるので全部変更する

もう一つ変更しなくてはならないファイルがある。fstabです。
どうも私はディスクの指定にUUIDを使うのに抵抗がある。確かにsda1等を使うと、認識の順序が変更になると問題がありますが、LVMを使えばこの問題はなくなりますし、
今回の様に仮想化もvdaを使えばいいのです。ともかくfstabを修正
# gedit /test2/etc/fstab
抜粋
UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda     /	ext4    defaults        1 1 UUID=...... を /dev/vda に修正
tmpfs                   /dev/shm                tmpfs   defaults        0 0
そして保存後、umountし、起動すればよい

PS:/etc/libvirt/qemu にある .xmlファイルの抜粋を参考の為に下記に示します。
普通にサブホストを作った時
  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <boot dev='hd'/>
   </os>

カーネルイメージからサブホストを直接起動する設定の時
  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <kernel>/boot/vmlinuz-2.6.32-642.el6.x86_64</kernel>
     <initrd>/boot/initramfs-2.6.32-642.el6.x86_64.img</initrd>
     <cmdline>root=/dev/vda</cmdline>
     <boot dev='hd'/>
   </os>
この様にDirect kernel bootで指定した"kernel, initrd, kernel argumenyts(cmdline)"が追加されています。
2016ー6ー16追記:今日sambaの入っているサブホストを同じようにやっている時、cp -pr ./ /test2 の所で、
cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/scripts': サポートされていない操作です
cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/Policies/
{31B2F340-016D-11D2-945F-00C04FB984F9}/USER': サポートされていない操作です 本当はこの行は上の行と同じ行です。
以下省略
とエラーがいっぱい出ていた。エラーの所を見ると
# ls -la /test1/var/lib/samba/sysvol/
合計 20
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 .
drwxr-xr-x. 7 root    root    4096  1月 30 22:18 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 kinryokai.net
ちょっと見にくいが + が付いているのでACLが効いているので、エラーになった見たい。でも /test1 と /test2 を比較しても、パーミッション、オーナー、ファイルの数やサイズを見てもまったく同じであるので正しくコピーされている見たい。それでこのサブホストを起動しWindowsからファイルサーバー(アクティブディレクトリーを使用したsamba)をテストしたが問題ない見たい。
でもコピーされた方にはACLの設定がなされてない見たい。これは問題、色々ググったらcpはACLに対応していないそう。Starと言うのが対応しているみたいなので、近日この項に結果を書きます。
2016-6-19追記:色々トライしてみましたが、getfact, setfaclを使用するのが簡単だった
まずはオリジナルのvdaをマウントするが、例によって領域の中に領域なので
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
でloop0に本来ルート領域をマウントする(画像0の領域2)
# ls /dev/mapper/
でマッパーを見るとloop0p1等がある。
# mount /dev/mapper/loop0p1 /test1
で/test1にマウントして、
# cd /test1/var/lib/samba/
で該当個所に移動
# getfacl -R * > /root/acl-backup
でACLをバックアップ。
次に使用しているvdaをマウントしますが、ACLの設定をするので
# mount -o rw,acl /dev/VG名/LV名 /test2 私はLVMを使用
でオプションで ACLなどを指定し/test2にマウント
# cd /test2/var/lib/samba/
で該当個所に移動
# setfacl --restore=/root/acl-backup
でリストアする。
ACLの確認
# ls -la sysvol/kinryokai.net/
合計 32
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 .
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 Policies
drwxrwx---+ 2 3000017 3000000 4096  6月 27 20:50 2014 scripts

他のディレクトリーも調べたがOKだった。
あと、ACLの設定をしたので fstabを変更する(変更しないで起動するとACLの設定が反映されていなかった)
でも、領域の中に領域を作った(つまりオリジナル)vdaで起動すると fstab にはACLの設定が無いが、ACLの設定は反映している!
何で!!ともかくfstabの変更
# gedit /test2/etc/fstab
抜粋
/dev/vda   /          ext4       defaults,acl   0 0 ← ,aclを追記
保存後、後始末
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
でもって、起動すればOK
2016-6-21追記
色々調べると、現在は tarも--aclオプションがあり対応しているようですので、その方法
サブホストの領域をフォーマットするまでは同じですが、これをマウントする所からが違います。
# mount -o rw,acl /dev/VG名/LV名 /test2
でオプションで ACLなどを指定し/test2にマウントしておきます。
次に/test1にマウントしたルート領域を tarで保存します。
# cd /test1
# tar --acls -cvf /tmp/subroot.tar ./
この様に --aclsオプションを付けて保存します。私はこのtarファイルが7GB弱になりましたので、保存場所(この場合は/tmp)の空き容量に注意してください。
これを復元します。
# cd /test2
2018-9-5追記:
今日 bacula でバックアップしたサブホストのルートファイルシステムをリストアして boot すると
according to mtab, /dev/vda is already mounted on sysroot と表示されカーネルパニックで起動できない。google先生に聞くと
ここに回答があった
/proc と /sys が無いのが原因。考えてみれば、この二つのディレクトリーはバックアップしていない、だがディレクトリー自体は作っておかないといけない。
これらを作成後は起動できたが、mysqld のスタートに失敗する。ログを見ると /tmp にディレクトリーを作ろうとして失敗している。/tmp のオーナーは root でアトリビュートは755でmysqld はrootメンバーでは無いので、少しセキュリティー的には弱くなるが777にしちゃえ。


投稿者: f-otake 投稿日時: 2016-6-12 11:40:32 (1418 ヒット)

表記の様に止まってしまい、それ以上進まず、インストールが出来ない
(インストールは保存してあるISOイメージを使用し、VERは6.8 LVMの領域を一つ作りそれを指定し、全てを / に指定,SWAPは作らない(後から追加できる))
色々ググったが、ヒットしない。selinux関連だからと、当てずっぽうにインストール時に selinux=0 を指定したらうまくインストール出来た。
そのやり方。
画像1の様にインストール画面間で進み、そこでタブを押すと、画面の様に vmlinuz initrd= ....等と表示が現れますので、
続けて selinux=0(画像2)と入力しEnterを押し、インストールを続けます。後は止まることなく最後まで進みます。
この時気を付けるのは、この時点ではキーボードが日本語になっていませんので(英語キーボードの配列)= を入力するのは、ひらがなの へ のキー(右上の方)です。











投稿者: f-otake 投稿日時: 2016-6-4 11:34:06 (813 ヒット)

そろそろメインのKVMホストをMONDOでバックアップしようとinit 1 でシングルユーザーにしてmondoarchive をやっても最後の方で
I cant find the boot catalog directory 'syslinux'! になる。google先生に聞いても答えが得られない。
yumでmondo関連をremoveし、再インストールをしてみたが、状況は変わらない。
途方に暮れ、もう一度インストールし直そうと思い
# yum list installed | grep mondo
でインストールされているものを調べると
afio.i386 2.5-1.rhel6 @mondorescue
buffer.i386 1.19-4.rhel6 @mondorescue
mindi.x86_64 3.0.1-1.rhel6 @mondorescue
mindi-busybox.x86_64 1.21.1-1.rhel6 @mondorescue
mondo.x86_64 3.2.1-1.rhel6 @mondorescue
perl-MondoRescue.noarch 3.2.1-1.rhel6 @mondorescue

ありゃー、afioとbufferが32bitになっている。(原因は前にこのホストをリストアした時に32bit を使っていた。)
# yum remove afio buffer mindi mindi-busybox mondo perl-mondoRescure
とアンインストールし、
# yum clean all
で、念のためキャッシュを消し、さらに念のため再起動をした。(多分ここまでやる必要は無いと思うが)
そして、再インストール
# yum install afio buffer mindi mindi-busybox mondo perl-mondoRescure
でもって、mondoarchive をインターラクティブモード(引数を与えなければ、このモードになる)
無事成功。
なので、
# init 1
でシングルユーザーにして
# mondoarchive
で無事終わった。
めでたし、めでたし


投稿者: f-otake 投稿日時: 2016-5-29 14:51:16 (845 ヒット)

先日、カーネルのアップデート(もちろんそれ以外も色々たくさんあった)したらエラーが出た。
内容は次の通り

1:サブホストのブート時、ip6tables-restore がエラーを出す(画像1)

2:1の問題の為、IPV6を止めたら、dovecot がエラーを出す(画像2)

3:vncにログインしていると突然ログアウトする。

さっそく1番のip6tables-restore がエラーを出すから対処していきます。私はIPV6を止めていた筈なのですが、多分カーネルのアップデート時に有効になったみたいです。
参考URL:http://easyramble.com/disable-ipv6.html
# service ip6tables stop
でip6tablesをストップし
# chkconfig ip6tables off
で再起動時も無効にします。
次にIPV6自体を無効にするために
# echo "install ipv6 /bin/true" >> /etc/modprobe.d/disable-ipv6.conf
ネットワーク関連の設定ファイルも変更します。
# gedit /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no ← これを追加する
HOSTNAME=XXXXXX
GATEWAY=192.168.XX.XX

# gedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no ← 最後に追記

IPV6の状態を知りたければ http://open-groove.net/linux/disable-ipv6/ が参考になる
これでサブホストを再起動すると
ありゃー、dovecot がエラーを出す(画像2)。どうやらIPV6 を見に行っている。dovecotの設定を見る
# gedit /etc/dovecot/dovecot.conf
# listen = *, :::: ← 26行目位にある
listen = * ← 追記する

これでサブホストをまたも再起動、やっとブート時にはエラーを出さなくなった。

私はサブホストにはVNCでログインしているが、これが突然ログアウトをするようになった。それも数分以内で必ずログアウトする。これでは使えない。
他のサブホストにもVNCでログインしているが、こちらはそんなことが無い。VNCサーバーはCentOSの標準のtigervnc なので、これをインストールし直す。
# yum remove tigervnc-server
# yum install tigervnc-server
これでも、状況はは変わらない。うーん。バージョンを調べる
# rpm -qa |grep tigervnc
tigervnc-server-1.1.0-18.el6.x86_64
それで、正常なサブホストでも調べる。
tigervnc-server-1.1.0-16.el6.x86_64
やはりバージョンが少し古い。
少々強引ではあるが、このVNCをコピーして見る。

正常なサブホストで /usr/bin にあるXvncを問題のあるサブホストからも見える所にコピー(samba, NFS 等を使って)
そして強引にそのファイルを問題のあるサブホストの /usr/bin にコピーする。
この時(当然ではあるが)tiger-vncserver 経由だとXvnc を使っているのでコピー出来ないので、GUIの仮想マシンマネージャーを使いログインする事。もちろん上書きするかのウィンドウが出るが。
そして、xinetd (VNCはxinet経由)を再起動
# service xinetd restart
これでやっと、突然ログアウトはしなくなった。


投稿者: f-otake 投稿日時: 2016-5-24 8:47:37 (2972 ヒット)

現在XOOPSのDATABASEの文字コードはEUCーJPである。これはXOOPSのバージョンが2.0.16だった頃からの遺産である。そろそろUTFにしようと思う。
OSはCentOS6.7なのでこちらは既にUTFであるので、データーベースの文字コードを変更する。その前に現在の状況を把握する。まずはデーターベース、mysqlにログイン
# mysql -u ユーザー名 -p
パスワードを聞かれるので入力
mysql> show variables like 'char%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
全部 UTF8(もちろんファイルシステムとDIRは違う)
XOOPSで使用しているデーターベースの各テーブルの文字コード(mysqlは各テーブルに文字コードを設定できる)
mysql> show table status from データーベース名;
でテーブルの設定が表示されるので、Collation の所を見ると全部 ujis_japanese_ci になっていたので、EUC-JPである。
続いてPHPの設定の確認、
# gedit /etc/php.ini
抜粋
;default_charset = "iso-8859-1"

;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none;
;mbstring.func_overload = 0
;mbstring.strict_detection = Off
;mbstring.http_output_conv_mimetype=
全部コメントアウトしてある(php.iniは ;(セミコロン)がコメントである)
私の自宅サーバーのapacheはバーチャルホストの設定があり、自身が管理していないWEBがあり、UTFー8、shift-jis、EUCーJPを使用している。
一様 mysqlの設定も
# gedit /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 256M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
datadir=/XXXXXXX/XXXXXX デフォルトから変更してある
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

character-set-server = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



ここから本題、二つの方法を書いておく。どちらかでいい、まずは phpMyAdmin を使う方法
XOOPSのデーターベースを選んでから、右ペインの上のタブで エクスポート をクリック、その後、実行をクリックすると、開くか保存か聞いてきますので、保存を選び、OKをクリック、次に保存場所を聞いてきますので、適当に選びOK。すると選んだデーターベース名.sqlというファイルが保存されます。このファイルの文字コードはOSのコードつまりUTF−8で保存されています。
但し、このファイルには各テーブルの文字コードがujis(EUC-jp)になっていますので、utf8に変更します。
# cat データーベース名.sql | sed -e 's/ujis/utf8/g' > データーベース名-1.sql
これで、インポートする時にテーブルの文字コードはUTF-8になります。
次にインポートしますが、その前にデーターベースを作ります。
画像2の右ペインの上の データーベース タブをクリック(左ペインで、データーベースを選んでいると、このタブが表示されませんので、PhpMyAdminのロゴの下、一番左をクリックすると表示されます)。データーベース名を適当に付け、照合順序を utf8_general_ci にし、作成をクリックすると、データーベースが作成されます。

作成されたデーターベースを選び(画像3)右ペインで インポート タブをクリック、参照をクリックし、先ほど保存したデーターベース名-1.sqlを選び、ファイルの文字セットがUTF-8になっているのを確認し、実行をクリックすると、インポートされます。 インポートは正常に終了しました。と表示がでたらOKです。
その後、作ったファイルを削除する(データーベース名.sqlとデーターベース名-1.sql。セキュリティーの為)

次はphpMyAdminを使わないでやる方法
Xoopsで使用しているデーターベースをバックアップする。
# mysqldump -u ユーザー名 -p --databases XOOPSのデーターベース名 > xoops.sql

このファイルの文字コードを調べる(OSの文字コードの筈だが)端末の上部メニューの 端末(T)、文字コードの設定(C)とクリックし、Unicode(UTF-8)が表示されるのを確かめて
# cat xoops.sql
これで端末上にデーターが流れるように表示される(データー量が多いので)その時、漢字が文字化けしていなければ、このファイルの文字コードはUTF-8である。
見にくい時は more を付けて
# cat xoops.sql | more
でスペースを押すと、次になるので漢字が表示される所までやる。確認後 ctrl+c で終わらせる。
確認が出来たら xoops.sql を編集しますが、する事はデーターベース名の変更(変更しないとオリジナルのデーターベースに上書きするので)各テーブルの文字コードをutf8にする。
# cat xoops.sql | sed -e 's/XOOPSのデーターベース名/新データーベース名/g' -e 's/ujis/utf8/g' > xoops4.sql
出来た xoops4.sql をmysqlにインポートします。
# mysql -u ユーザー名 -p < xoops4.sql
パスワードを聞かれますので入力。
これで、新データーベース名でデーターベースが出来ていることを確認しておきます。
又、セキュリティーの為、作ったファイル(xoops.sqlとxoops4.sql)を削除しておきます。
これでやっとデーターベースの各テーブルの文字コードとデーターの文字コードがUTF-8になりました。

ここからはXOOPSの設定
まずはデーターベースを変更する
# gedit XOOPSのルートディレクトリー/mainfile.php
	// Database Name
	// The name of database on the host. The installer will attempt to create the database if not exist
	define('XOOPS_DB_NAME', 'UTF8にした新データーベース名'); ←データーベース名を変更



保存したら、
つぎはXoopsのwebに管理者としてログイン後、ユーザーメニューの管理者メニューをクリック、左ペインの SYSTEM ADMIN をクリック後、一般設定、もう一度一般設定で画面を開き(画像5)使用言語を ja_utf8 にしてから、下にスクロールダウンし、送信をクリック。
アレー文字化けはしていないが、文字コードを確認するとEUC-JPのままだ、UTF-8にすると文字化けする。
色々悩んだが、思い出した、このXOOPSはJPExを使っていた。確か何処かに文字設定があった筈、やっと include/ini_settings.php を見つけ
<?php
/**

 ;Example: If your database character is EUC-JP, it should be ujis.
 ;Example: If your database character is UTF-8, it should be utf8.
 ;charcode=utf8

 */
charcode=utf8 ここをujisからutf8に変更
?>

これを保存し、ブラウザでアクセスし、文字コードを確認するとUTF-8になっていた。
但し、一部に文字化けがあるので、多分キャッシュのせい、
XOOPSのルートディレクトリーにある、二つのディレクトリー(cacheとtemplate_c)の中身を全て削除し、再度アクセスすると文字化けは無くなっていた。
私の場合はXOOPSにJPExを使っているので、Language以下の定数が漢字で定義している部分などは既にutf-8ようがあるので、問題ないが、他のバージョンでは多分必要、他にも文字コード変更が必要かも?


投稿者: f-otake 投稿日時: 2016-4-28 14:01:13 (2192 ヒット)
Linux (サーバー制作)

今のサーバーはバックアップも取っていますが、まったく同じサーバーをもう一台製作し、rsyncで同期をして、何かあればすぐに予備サーバーに切り替えられる様にします。ただし予備のサーバーは普段は電源を落としておき、一日1回タイマーで立ち上げ同期を取ってシャットダウンします。
方針:予備のサーバーは一日1回UEFI(BIOS)のタイマーを使い立ち上げて、その後シャットダウンをする(省エネ化)
問題:予備のサーバーをシャットダウンするタイミングはどうするか?
 現状では名案が無いので、時間を見計らってシャットダウンする。
rsyncを走らすタイミング
 UEFI(BIOS)のタイマーで立ち上げった時、KVMホスト、全てのサブホストを起動し、起動時にスクリプトを走らすことが出来る /etc/rc.d/rc.local に起動スクリプトを記入していく。

まずは、現状のサーバーと同じサーバーを作ります。そして予備サーバーの設定をしていきます。
最初はUEFI(BIOS)の設定
 私の場合はマザーボードにASRockのAM1HーITXを使っていますので、設定は当然このマザーボードのもので。まず電源を入れDELキーでEUFIの設定画面を出し、Advanced → RTC Alarm Power On → Enble と選び、新しいウィンドウが開きますので、Every day をクリック後、時間:分:秒 を設定したらOKをクリックし、さらに設定を保存しEUFIを抜けます。
次にサブホストのシャットダウン時の設定
 ここを Resume にしていると、KVMホストが起動してもサブホストが起動では無く、Resumeしてしまい。起動スクリプトが走ってくれませんので、KVMホストがシャットダウンする時サブホストもシャットダウンする設定をします。この設定は /etc/init.d/libvirt-guests で設定します。
このスクリプトの

ON_SHUTDOWN=shutdown ← ホストがシャットダウンしたらゲストもシャトダウンする

にした。参考にした中には SHUTDOWN_TIMEOUT や START_DELAY を変更しているのもあったが、私はデフォルトのまま。これでホストをシャットダウンしたらゲストもシャットダウンする。又、ON_BOOT=start にしていると、ホストがシャットダウンするときに走っていたコンピューターがホストが起動するとゲストも起動するようになる。ここを参照
これで起動とサブホストのシャットダウンはうまくいく。
今度は本チャンのコンピューターとの同期である。これにはrc.local を使いrsyncで同期する。
rsyncの書式は rsync [option] SOURCE [SOURCE]... DEST でソースは複数指定できる。
(rsyncの設定はここを参照)
早速rsyncの設定をしていく。rsyncはリモートからリモートへの同期は出来ないので、各ホスト毎に設定が必要になる。まずはバックアップ元(SOURCE)でrsyncをデーモンで走らせておく(この方が何かとやりやすかったので)
最初にrsyncd.confの設定(この設定を全ての同期元のサーバー全部に設定していく)
# gedit /etc/rsyncd.conf
# Global options
uid           = root
gid           = wheel
use chroot    = yes
log file      = /var/log/rsyncd.log
pid file      = /var/run/rsyncd.pid
hosts allow   = 192.168.XX.XX/24
hosts deny    = *
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png

# Module options
[Thunderbird]
         comment      = rsync server
         path         = /Thunderbird
         auth users   = root
         secrets file = /etc/rsyncd.secrets
         read only    = no
[Download]
 	 comment      = rsync server
         path         = /Download
         auth users   = root
         secrets file = /etc/rsyncd.secrets
         read only    = no
この設定の意味はrsyncをrootユーザーで走らして、chrootを可能にし、ローカルネットワーク(一部伏せ字)からのみRQを受付、圧縮しない拡張子を指定し、バックアップされる部分を指定している。注意するのはrsyncで指定するのは[ ]で指定した文字列になること。例えば
[abc]
     path=/XXX/YYY/CCC
としたらCCCディレクトリーの指定は abc になる。又、ここにある /etc/rsyncd.secrets に ユーザー名:パスワード の書式でを設定しておく。又、複数のユーザーが可能だが一行毎に記入しておく。大事なのはこのファイルのパーミッションを600にしておかないとエラーになる。そしてrsyncをデーモンモードで起動する。
# rsync --daemon --config=/etc/rsyncd.conf これはCentOS6の時
# systemctl start rsyncd これはCentOS7の時
これらを同期したい全てのサーバーに指定して置く。

次はバック先のホストの設定
先ずは予備のKVMホストの設定だが、rsyncdにパスワードを設定してあるのでそのファイルを作る。
/etc/rsync.passwd にバックアップ元で指定したパスワードのみを記入しておく(ユーザーはrsyncコマンドの中で指定する)。このファイルもパーミッションを600にしておかなければならない。
/etc/rc.d/rc.localに下記を追記
freshclam ← 予備のコンピューターはいつもは電源が入っていないのでVirusデーターのアップデートをする
rsync -a --delete --password-file=/etc/rsync.passwd rsync://root@192.168.XX.XX/Thunderbird/ /Thunderbird
rsync -a --delete --password-file=/etc/rsync.passwd rsync://root@192.168.XX.XX/Download/ /Download
私の場合は /Thunderbird (メールのデーター)と /Download(色々なダウンロードした物の置き場所)を同期した。--delete でバックアップ先にあってバックアップ元に無い物はdeleteされる(完全に同期)。パスワードファイルを指定し、rsync://root@ でユーザーを指定している。大事なのはバックアップ元の最後の / の指定、これが無いとバックアップ先のディレクトリーの下にバックアップ元のディレクトリーを作ってしまう。
これと同じように全てのバックアップ先のホストで指定する。
これで一様同期する筈だが、このままではシャットダウンしない。色々試したが、全ての同期に一時間もいらないので(毎日同期しているので)メインのホストでcron.dに設定を入れる。
# Shutingdown after All Sub Host rsync maybe ended
10 3 * * * root shutdown -h now
この設定は毎日午前3時10分にシャットダウンする(UEFIで午前2時に起動する設定をしている)
これを /etc/cron.d に Shutdwn(オーナーはroot、わざとshutdownにしていない)として保存する。
これで午前2時にEUFIのタイマーで起動し、午前3時10分にシャットダウンする筈。
あれ!シャットダウンしないぞ、何でだ??原因調査中
エラーメールが着ていた。内容は
/bin/sh: shutdown: command not found
だと!スペル間違えてないよなー、shutdownは確か/sbinにあったと思うので、/etc/cron.d/Shutdwnを下記に変更
# Shutingdown after All Sub Host rsync maybe ended
10 3 * * * root /sbin/shutdown -h now
。テストの為に今の時間の5分後に変更して試すと。無事シャットダウンしてくれたので、時間を戻し、保存。


投稿者: f-otake 投稿日時: 2016-4-9 10:53:06 (868 ヒット)


VNCを外部から継ぎたくてルーターを設定を変更した。ルーターはNTTからレンタルのRTーS300HIである。
この設定の中に”静的NAT設定”(詳細設定の下)があるのでここで設定する。
この中に優先順位と言う設定項目があるが、ここの解釈で躓いた。この中の右に(0:使用しない)とあるが、私の理解は優先順位を使用しない事だと思い、ここを0に設定していたが、つながらなくて困った。ファイヤーウォールの設定や、SELINUXの設定や色々やったが繋がらないのである。ただしローカルネットワークからなら繋がる。何で!!
中から繋がるのでルーターの設定だと思うが、この解決に1日以上費やした。
理由:0に設定すると、このルールを使用しないと言う意味だった。
使用しないなら削除すればいいので、てっきり優先順位を使用しないと言う意味だと思ったいた。もちろん私も悪いがせめて”0:にすると設定自体が無効になります” とあれば誤解せずにすんだのに。(画像のIPは伏せ字にしてあります)


投稿者: f-otake 投稿日時: 2016-4-5 10:41:39 (4943 ヒット)


P31のようなメールが着た。ディスクのIOwaitが43.39%にもなっている。
でもこれが着たのは第一日曜日の午前3時過ぎ。この時間は何をしているかと言うと、月に1回の全てのホストのフルバックアップをbaculaで取っている。
また,私はリストアを簡単にするために、各ホストの各パーティション毎にバックアップしているので、JOBの数が上がっていて、なおかつフルバックアップなので発生していると思われる。なので他の日は発生していないので、次の日曜日には増分でなく差分を取るので、少しロードが上がる筈。その時の様子見にする。
2016年4月24日追記:差分を取る日曜日にはエラーが出ていない。又、他の曜日は増分なのでもっと書き込みが少ない
又、P32の様に同じホストだが、違う時間で同じようなメールが着た。この原因はclamd(アンチウィルス・プログラム)がフルスキャンをしている時間だ。うーむどうしようか考え中、毎日来ると思うがどうやってロードを下げようか?
2016年4月24日追記:2ー3日に1回位の割合でエラーが発生している
ちなみに、何故このホストだけ来るかは、他のホストはCPUのコアを複数割り当ててあり、このホストだけ1つだけの割り当てだから。でもDiskは短時間んで一つしかアクセスできない。それなのにCPUの数で違って来るのかな??私には解らない。(ちなみにディスクはSSDなので早いはずだが)


投稿者: f-otake 投稿日時: 2016-4-4 9:53:17 (7914 ヒット)


表示が見にくい時はブラウザの横幅を変更して見てください。
P27の様なメールが着た。Zabbixのデフォルトでは5分間の平均のプロセス数が300を越えるとこのエラーを出す見たい。早速google先生に尋ねると、
http://www.zabbix.jp/node/1111に回答があった。
ここによるとCPUのロードアベレージが問題なければ、このトリガーを変更してもいいそうな。そもそも、この300という値はサンプルみたい。
でもデフォルトで登録されているトリガーは変更できなそうなので、
6:エラーメールが着たーディスクスの空きが少ない と同じように、デフォルトの分は無効にして、このホスト用に新しいトリガーを作る。

設定→ホストとクリックし、表示されたホストリストの Zabbix server の所の トリガーをクリックした時の表示がP28です。
ここで、Too many processes on {HOST.NAME} の行のステータスが有効(画面は無効ですが、これは設定後なので)になっていますので、そこをクリックすると無効に変わります。


次にP28の右上の方の トリガーの作成 をクリックして表示されるウィンドウがP29です。

名前を適当に入力し、追加 をクリック、

すると、P30が開きます。ここでアイテムの所はその右の 選択 をクリックするとウィンドウが開きますので、そこの下の方にある Number of processes をクリックするとアイテムに反映します。関数はその右の方にある▼(ドロップダウン)をクリックするとリストが表示されますので、その中から 期間Tの値の平均値>N を選ぶと関数に反映します。
最新の(T)には 5m と入れ、Nの所は 350 と入力し、挿入をクリックすると、P29に戻り、条件式が反映していますので、軽度の障害を選び、有効にチェックマークが入っているのを確認後、追加 をクリックして、トリガーを有効にします。


投稿者: f-otake 投稿日時: 2016-4-2 17:39:34 (895 ヒット)


P23のようなディスクのフリースペースが少ないと言うエラーメールが着た。
これはKVMのサブホストとして動いている(zabbix上の名前 smb)に独立したパーティションとしてマウントしてある /Backup のフリースペースが19.74%しかないと言っている。でもこの /Backup の容量は610GB割り当ててあり、これでもフリースペースは120GBもある。
ここはいろいろなホストのバックアップ用の領域なので、全部フルバックアップを取ったとしても30GBも要らないのは過去のデーターから解っているので、もっと少ない容量でトリガーを出す。
ただし、デフォルトで設定のあるトリガーのレベルの変更は出来ないので、このトリガーを無効にして、この領域用に新しくトリガーを作る。
まず、設定→ホストとクリックし、表示されたホストのリストで、smb を選び、
表示されたウィンドウのホストリストの真ん中辺のトリガーをクリックした画面がP24です。
この、該当する項目の(画面は見にくいですが)ステータスが 有効 になっている所をクリックすると無効になります。
P24の右上の方にある、トリガーの作成 をクリックすると、




P25が表示されます。この画像は設定した後で、テキストボックスは空白です。
名前の所にわかりやすい文で入力し、
追加をクリックすると





P26が開きます。この画像も設定の後ですが、最初はテキストボックスは空白です。
選択をクリックし、開いたウィンドウから、Free disk space on /Bakcup (percentage) をクリックすると、アイテムに反映されます。
関数の所は右の方のドロップダウンリスト(▼)をクリックし、期間Tの値の最小値 < N をクリックすると、関数に反映します。
最新の(T)には10と入力し(この意味は10分間)、
Nのテキストボックスに設定したいパーセンテージを数字だけ(%は入れない)入力後、
挿入をクリックすると元の画像P25に戻り、条件式が反映しています。
深刻度を警告にして、有効にチェックマークが入っているのを確認後、追加(画面は更新になっていますが)をクリックすると反映します。
追記:後日調べると毎月第一日曜日に、全てのフルバックアップを取っているのですが、今日調べると約50GB強ありましたので、警告のレベルを10%から15%に変更しました。






« 1 ... 3 4 5 (6) 7 8 9 ... 35 »
テーマ選択

(4 テーマ)
ピックアップ画像
CIMG2308
最近の画像
IMG_0004.jpg (2023-3-17)
IMG_0004.jpg
IMG_0003.jpg (2023-3-17)
IMG_0003.jpg
IMG_0010.jpg (2023-3-17)
IMG_0010.jpg
IMG_0013.jpg (2023-3-17)
IMG_0013.jpg
IMG_0007.jpg (2023-3-17)
IMG_0007.jpg
IMG_0005.jpg (2023-3-17)
IMG_0005.jpg
IMG_0002.jpg (2023-3-17)
IMG_0002.jpg
IMG_0011.jpg (2023-3-17)
IMG_0011.jpg
IMG_0009.jpg (2023-3-17)
IMG_0009.jpg
IMG_0008.jpg (2023-3-17)
IMG_0008.jpg
人気画像
ゴーキョピー... (6154 hits)
ゴーキョピー...
ギャチュンカ... (6029 hits)
ギャチュンカ...
ばあちゃんミ... (5912 hits)
ばあちゃんミ...
ヒマラヤ壁 (5823 hits)
ヒマラヤ壁
タムセルク残... (5628 hits)
タムセルク残...
Powered by Xoops2 Theme Modified by F-Otake
copyright (c) 2006 All rights reserved.