ここでは SUSE Linux Enterprise Server への Dell Software NetVault 10 のインストール手順を説明します。

-SUSE Linux 11sp3 のインストールはほぼデフォルト、追加ソフトウェアなし。
-SLE 11 SDK をリポジトリに登録します。
 例えば WEB server が動作しているサーバーに解凍してリポジトリとしておけば良いでしょう。
- ここでは NetVault10 Pure 64 版を使用します。SLES も 64ビット版です。

これがないと nvconfigurator GUI が起動できません。
 
SUSE Linux Enterprise 11 Software Development Kit e-Media Kit

openmotif が必要なので yast2 から SDK の openmotifとライブラリをYaST > Software Management からインストールします。依存性のあるライブラリも同時にインストールされます。
a0056607_05250977.jpg
インストーラを実行します。

※ここでは評価版を使用しました。
# unzip xxxxxx.zip
# tar xvzf xxxxx.tar.g.z

で解凍します。

netvault:~/iso/nv10/NVBU100124-Linux-Pure64/netvault # ./install
Installer invoked in /root/iso/nv10/NVBU100124-Linux-Pure64/netvault
Using default /tmp as the temporary directory
Expanding distribution file

NetVault
Copyright 2014 Dell Software Inc.
ALL RIGHTS RESERVED.

Select a Language
1 English
2 JapaneseEUC
3 Chinese Simplified
4 Korean
5 French
6 German
Select language? [1] 2 (JapaneseEUC)
- JapaneseEUC selected
Have you read and agreed to the terms of the license?
(y = yes, n = no, d = display license) (y n d) [d] y(es)
Where should NetVault be installed? [/usr/netvault](default Enter)
Where should NetVault database be installed? [/usr/netvault/db](default Enter)
Please enter a NetVault machine name
using A-Z, a-z, _ and 0-9 [netvault](default Enter)

Please enter the NetVault password for this machine (password)
Please confirm password (password)
Please enter the password for the NetVault PostgreSQL database superuser (password)
Please confirm password (password)
checkinstall running (Begin install....)

:
: 中略
:

Copying uninstallation scripts
Installation completed successfully
#


nvconfigurator の起動、起動はX上のターミナルで行います。
netvault:~/iso/nv10/NVBU100124-Linux-Pure64/netvault # nvconfigurator &

a0056607_05343201.jpg
nvconfigurator & 「web サービス」タブを開き「HTTPサービスの有効化」をチェックします。



NetVault を一旦再起動します。

# /etc/init.d/netvault stop
# /etc/init.d/netvault start

ブラウザで次のアドレスを開きます。

http://ipaddress:80

login: admin/no-password

a0056607_00021438.jpg



-Keyword-
SUSE SLES NetVault nvconfigurator openmotif SDK



[PR]
# by islandcenter | 2015-01-31 05:38 | SUSE | Trackback | Comments(0)

SUSE open forum 2014 で SLES for SAP が紹介されました。
https://www.suse.com/ja-jp/events/suse-open-forum/2014/

SUSE Linux Enterprise Server for SAP Applications (以下 SLES for SAP) は SAP に最適化されたアプリケーション導入、運用環境を提供します。

https://www.suse.com/ja-jp/products/sles-for-sap/


-インストール-

SLES for SAP はSLES11sp3 をベースとしています。したがってインストール手順はSLES11に準じます。インストールサマリ画面から software リンクを開くとSAPアプリケ―ションBase 他、SAP 導入に必要な追加パッケージを選択する事ができます。

a0056607_11535458.jpg


また yast > software より "sap" で検索すると、yast2 用のSAP インストールウィザードもインストールしてくれます。
a0056607_120254.jpg


後はウィザードを yast で起動してインストールします。
a0056607_1223260.jpg


SLESのインストールの後 SAP インストールウィザードを起動して導入するだけです。

-インストーラだけではない特殊なチューニング-

/etc/sysctrl.conf を見ると、通常の SLES では設定されていない特殊なチューニングが行われている事が分かります。一番重要なのは、ページキャッシュの制限です。このチューニングはSAPアプリケーションがページアウトするメモリキャッシュを制限して、パフォーマンスを最大化するものです。
a0056607_12595833.jpg



-全てのSAPはSUSEで試される-

SAP も SUSE も質実剛健なドイツの企業です。拠点が近いという事もあり、お互いの協業体制は万全だそうです。

その例として、全ての SAP アプリケーションは SLES 上で開発され、まず試されます。またSAP自身が SLES 上で自社ERPシステムを運用している関係上、事実上

「SLES 上でドックフードを食べる」

体制が出来上がっています。

その他のオペレーティングシステムは言わば「後回し」になるため、事実上 SLES が SAP を動かすプラットフォームとしてのデファクトスタンダードとなっています。SAPを導入するには「一番の安全牌」が SUSE Linux Enterprise Server です。

--
SUSE は本来、ビジネス志向の強い Linux ディストリビューションです。自社のためではなく顧客志向の強さを感じます。


islandcenter.jp
[PR]
# by islandcenter | 2014-12-23 11:55 | SUSE | Trackback | Comments(0)

SUSE Open Forum 2014

久しぶりにノベル株式会社が主催する、外部のカンファレンス会場を使ったイベントがありました。

SUSE Open Forum 2014
https://www.suse.com/ja-jp/events/suse-open-forum/2014/

150人満席、8割がネクタイ族

このフォーラムに参加した視聴者のほぼ8割がネクタイを締めたビジネスマンだったことが非常に印象的でした。

普通OSSのフォーラムと言えば、ラフなスタイルの開発者であるとか、普段運用に携わっているIT管理者が参加するもの、と考えてたのですが、以外と150名の定員は満席で、その中の8割ほどの参加者がちゃんとネクタイを締めたビジネスマンだった、という事が印象的でした。一応ネクタイを締めていった私が浮かなかった事は幸いです。

Linux や OSS を使うことはビジネスで重要である。

そう言った印象を与えてくれたフォーラムでした。

ノベル主催のフォーラム

ノベルは最近ほとんどこの様な外の施設を使ったフォーラムやイベントを行っていませんでした。わざわざホテルの宴会場を借りるというのは、かなり力が入ったイベントだなという印象があります。また、ノベル(株式会社)レベルでは一時期 Ljnux の販売、サポートを止めていた時期がありました。

このフォーラムは事前受付で満員で、しかも、ほとんどの参加者がネクタイ族というのも、Novell/SUSE の位置づけを表していて面白かったです。

SUSE Linux はビジネスにとって重要なエレメントなのです。

そんな印象が強かったフォーラムでした。

islandcenter.jp
[PR]
# by islandcenter | 2014-12-23 11:02 | SUSE | Trackback | Comments(0)

ある日試してみたら、VPN 用の pptpd サーバーが外部から SSH 接続できてしまう事に気が付いてしまいました。幸い HeartBleed のバージョンではなかったので良かったのですが、あまりにも不用心なので、SSH は内部からのみ、外部からは利用できないようにしました。

SUSE Linux で外部ネットワークとのSSH接続を拒否します。

sles11:/etc # cat hosts.allow

# ローカルネットワークを許可(追加)
sshd : 192.168.1.0/24

sles11:/etc # cat hosts.deny

# 他のネットワークからの接続は拒否(追加)

#http-rman : ALL EXCEPT LOCAL
sshd : all

これで、一応外部からの SSH 接続はできず、VPN で内部のホストに接続しない限り VPN サーバには接続できなくなりました。 hosts.allow と hosts.deny は設定するとサービスを再起動しなくても即時適応されるそうです。

SSHでのホスト制限
http://hiro7216.dyndns.org/blognplus/index.php?e=116

なお SUSE の場合 http-rman というのがありますがウェブブラウザから man ページにアクセスするインターフェースです。通常不要なので削除しても構いません。
rman RosettaMan - Filter for Manpages
http://www.novell.com/products/linuxpackages/opensuse/rman.html


-確認方法-

このサーバーが外部と通信しているかを確認するには tcpdump コマンドで内部ネットワーク(192.168.1.1-254)以外のパケットをキャプチャして、外部とどのような通信をしているかを確認します。

vpn:~/ # tcpdump \(src net not 192.168.1.0/24\) and \(dst net 192.168.1.0/24\)
tcpdumpの使い方
http://d.hatena.ne.jp/chipa34/20080210/1202650183

-ついでに-

ntpd にも脆弱性があることが分かったので、塞いでおきます。

ntps:/etc # cat ntp.conf
: 中略
disable monitor

増幅攻撃はDNSだけではない――NTPサーバーの脆弱性に注意喚起
http://www.atmarkit.co.jp/ait/articles/1401/15/news126.html

対策は、脆弱性を修正したntpd 4.2.7p26(開発版)にバージョンアップすることだ。もし開発版の適用が難しい場合は、ntpdの設定ファイル「ntp.conf」に「disable monitor」という一行を追加し、monlist機能を無効化することで回避可能という。


その他の情報は
islandcenter.jp

-KeyWord-

SUSE Linux Enterprise Server NTPD 脆弱性 SSHを外部ネットワークから拒否 SSH接続元を限定する tcpdump 外部ネットワークとの通信確認
[PR]
# by islandcenter | 2014-12-15 09:18 | SUSE | Trackback | Comments(0)

SUSE Linux Enterprise 12 (SLES12) で ntpd が起動できない不具合があります。 ntpd deamon can't start under SUSE Linux Enterprise 12. How to resolve this issue ? No idea.... Orz.

sles12:/var/log # rcntpd restart
Job for ntpd.service failed. See "systemctl status ntpd.service" and "journalctl -xn" for details.


sles12:/var/log # tail messages -n30
2014-12-06T12:10:25.604438+09:00 sles12 ntpd[23695]: Listen normally on 9 vif7.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:10:25.604576+09:00 sles12 ntpd[23695]: Listen normally on 10 vif5.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:10:25.604716+09:00 sles12 ntpd[23695]: Listen normally on 11 vif4.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:10:25.605537+09:00 sles12 ntpd[23695]: Listen normally on 14 br0 fe80::be5f:f4ff:fef9:d8db UDP 123
2014-12-06T12:10:25.605705+09:00 sles12 ntpd[23695]: peers refreshed
2014-12-06T12:10:25.605855+09:00 sles12 ntpd[23695]: Listening on routing socket on fd #31 for interface updates
2014-12-06T12:11:03.613150+09:00 sles12 ntpd[24146]: ntpd 4.2.6p5@1.2349-o Wed Oct 8 14:41:40 UTC 2014 (1)
2014-12-06T12:11:03.614227+09:00 sles12 start-ntpd[24135]: Starting network time protocol daemon (NTPD)
2014-12-06T12:11:03.614418+09:00 sles12 ntpd[24147]: proto: precision = 0.114 usec
2014-12-06T12:11:03.614604+09:00 sles12 ntpd[24147]: pid file /var/run/ntp/ntpd.pid: Permission denied
2014-12-06T12:11:03.614766+09:00 sles12 ntpd[24147]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
2014-12-06T12:11:03.614917+09:00 sles12 ntpd[24147]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
2014-12-06T12:11:03.615979+09:00 sles12 ntpd[24147]: Listen and drop on 1 v6wildcard :: UDP 123
2014-12-06T12:11:03.616168+09:00 sles12 ntpd[24147]: Listen normally on 2 lo 127.0.0.1 UDP 123
2014-12-06T12:11:03.616327+09:00 sles12 ntpd[24147]: Listen normally on 3 br0 192.168.1.240 UDP 123
2014-12-06T12:11:03.616484+09:00 sles12 ntpd[24147]: Listen normally on 4 lo ::1 UDP 123
2014-12-06T12:11:03.616637+09:00 sles12 ntpd[24147]: Listen normally on 5 vif11.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.616791+09:00 sles12 ntpd[24147]: Listen normally on 6 vif10.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.616975+09:00 sles12 ntpd[24147]: Listen normally on 7 vif9.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617126+09:00 sles12 ntpd[24147]: Listen normally on 8 vif7.0-emu fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617272+09:00 sles12 ntpd[24147]: Listen normally on 9 vif7.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617421+09:00 sles12 ntpd[24147]: Listen normally on 10 vif5.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617568+09:00 sles12 ntpd[24147]: Listen normally on 11 vif4.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617713+09:00 sles12 ntpd[24147]: Listen normally on 12 vif2.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.617857+09:00 sles12 ntpd[24147]: Listen normally on 13 vif1.0 fe80::fcff:ffff:feff:ffff UDP 123
2014-12-06T12:11:03.618004+09:00 sles12 ntpd[24147]: Listen normally on 14 br0 fe80::be5f:f4ff:fef9:d8db UDP 123
2014-12-06T12:11:03.618151+09:00 sles12 ntpd[24147]: peers refreshed
2014-12-06T12:11:03.618310+09:00 sles12 ntpd[24147]: Listening on routing socket on fd #31 for interface updates
2014-12-06T12:12:33.561820+09:00 sles12 systemd[1]: ntpd.service start operation timed out. Terminating.
2014-12-06T12:12:33.562738+09:00 sles12 systemd[1]: Failed to start NTP Server Daemon.
sles12:/var/log #




sles12:/var/log # systemctl status ntpd.service
ntpd.service - NTP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled)
Active: activating (auto-restart) (Result: timeout) since Sat 2014-12-06 12:12:33 JST; 2min 0s ago
Docs: man:ntpd(1)
Process: 24135 ExecStart=/usr/sbin/start-ntpd start (code=exited, status=0/SUCCESS)

Dec 06 12:12:33 sles12 systemd[1]: ntpd.service start operation timed out...g.
Dec 06 12:12:33 sles12 systemd[1]: Failed to start NTP Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.
sles12:/var/log #



sles12:/var/log #
sles12:/var/log # journalctl -xn
-- Logs begin at Sat 2014-11-29 21:30:09 JST, end at Sat 2014-12-06 12:12:33 JS
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 9 vif7.0 fe80::fcff:fff
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 10 vif5.0 fe80::fcff:ff
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 11 vif4.0 fe80::fcff:ff
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 12 vif2.0 fe80::fcff:ff
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 13 vif1.0 fe80::fcff:ff
Dec 06 12:11:03 sles12 ntpd[24147]: Listen normally on 14 br0 fe80::be5f:f4ff:
Dec 06 12:11:03 sles12 ntpd[24147]: peers refreshed
Dec 06 12:11:03 sles12 ntpd[24147]: Listening on routing socket on fd #31 for
Dec 06 12:12:33 sles12 systemd[1]: ntpd.service start operation timed out. Ter
Dec 06 12:12:33 sles12 systemd[1]: Failed to start NTP Server Daemon.
-- Subject: Unit ntpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit ntpd.service has failed.
--
-- The result is failed.
sles12:/var/log #

sles12:~ # rpm -qa ntp
ntp-4.2.6p5-24.3.x86_64
sles12:~ #

どうも systemd 環境下で ntpd を動かすと、適切な権限で pid が作成されないために発生する現象の様です。

-Resolution-
NTP Service Fails to Start or Hangs on SLES12
https://www.novell.com/support/kb/doc.php?id=7015867#

SLES12.0 の ntpd が起動しない問題は "logprof"コマンドを rcntpd を実行してタイムアウトした後に実行して修正できます。

※一応これで直ったみたい。Is it work ? I wonder....? Actuary recovered.

https://forums.suse.com/showthread.php?5548-SUSE-12-ntp-fails-to-start



NTP Is Enabled but Not Starting on Boot
http://www.reddit.com/r/linuxadmin/comments/2k4odu/ntp_is_enabled_but_not_starting_on_boot_systemd/

-Resolved-

sles12:~ # rcntpd restart
Job for ntpd.service failed. See "systemctl status ntpd.service" and "journalctl -xn" for details.

-- wait ... for time out ----

sles12:~ # logprof
Reading log entries from /var/log/messages.
Updating AppArmor profiles in /etc/apparmor.d.
Enforce-mode changes:

Profile: /usr/sbin/ntpd
Path: /run/nscd/group
Mode: r
Severity: unknown


[1 - /run/nscd/group]

(A)llow / [(D)eny] / (G)lob / Glob w/(E)xt / (N)ew / Abo(r)t / (F)inish / (O)pts
Adding /run/nscd/group r to profile. <-----(A)llow

Profile: /usr/sbin/ntpd
Path: /var/lib/ntp/var/run/ntp/ntpd.pid
Mode: w
Severity: unknown


[1 - /var/lib/ntp/var/run/ntp/ntpd.pid]

(A)llow / [(D)eny] / (G)lob / Glob w/(E)xt / (N)ew / Abo(r)t / (F)inish / (O)pts
Adding /var/lib/ntp/var/run/ntp/ntpd.pid w to profile. <----- (A)llow

= Changed Local Profiles =

The following local profiles were changed. Would you like to save them?

[1 - /usr/sbin/ntpd]

(S)ave Changes / [(V)iew Changes] / Abo(r)t <-----(S)ave
Writing updated profile for /usr/sbin/ntpd.
sles12:~ #

sles12:~ # systemctl restart ntpd.service
sles12:~ # systemctl status ntpd.service
ntpd.service - NTP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled)
Active: active (running) since Tue 2014-12-30 12:30:55 JST; 4s ago
Docs: man:ntpd(1)
Process: 1445 ExecStart=/usr/sbin/start-ntpd start (code=exited, status=0/SUCCESS)
Main PID: 1457 (ntpd)
CGroup: /system.slice/ntpd.service
└─1457 /usr/sbin/ntpd -p /var/run/ntp/ntpd.pid -g -u ntp:ntp -i /var/lib/ntp -c /etc/...

Dec 30 12:30:55 sles12 ntpd[1457]: proto: precision = 0.700 usec
Dec 30 12:30:55 sles12 ntpd[1457]: ntp_io: estimated max descriptors: 1024, initial socket b...: 16
Dec 30 12:30:55 sles12 ntpd[1457]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: Listen and drop on 1 v6wildcard :: UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: Listen normally on 2 lo 127.0.0.1 UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: Listen normally on 3 eth0 192.168.1.106 UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: Listen normally on 4 lo ::1 UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: Listen normally on 5 eth0 fe80::215:5dff:fe01:301b UDP 123
Dec 30 12:30:55 sles12 ntpd[1457]: peers refreshed
Dec 30 12:30:55 sles12 ntpd[1457]: Listening on routing socket on fd #22 for interface updates
Hint: Some lines were ellipsized, use -l to show in full.
sles12:~ #
sles12:~ # tail /var/log/messages -n20
2014-12-30T12:25:01.799524+09:00 sles12 CRON[1373]: pam_unix(crond:session): session closed for user root
2014-12-30T12:30:01.834347+09:00 sles12 cron[1394]: pam_unix(crond:session): session opened for user root by (uid=0)
2014-12-30T12:30:01.835574+09:00 sles12 kernel: [ 404.013874] type=1006 audit(1419910201.829:43): pid=1394 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=3 res=1
2014-12-30T12:30:01.843309+09:00 sles12 cron[1393]: pam_unix(crond:session): session opened for user root by (uid=0)
2014-12-30T12:30:01.843903+09:00 sles12 kernel: [ 404.022834] type=1006 audit(1419910201.837:44): pid=1393 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=4 res=1
2014-12-30T12:30:01.910931+09:00 sles12 CRON[1394]: pam_unix(crond:session): session closed for user root
2014-12-30T12:30:02.170278+09:00 sles12 CRON[1393]: pam_unix(crond:session): session closed for user root
2014-12-30T12:30:29.961321+09:00 sles12 kernel: [ 432.135604] type=1400 audit(1419910229.953:45): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/ntpd" pid=1440 comm="apparmor_parser"
2014-12-30T12:30:55.617362+09:00 sles12 ntpd[1456]: ntpd 4.2.6p5@1.2349-o Wed Oct 8 14:41:40 UTC 2014 (1)
2014-12-30T12:30:55.618768+09:00 sles12 start-ntpd[1445]: Starting network time protocol daemon (NTPD)
2014-12-30T12:30:55.623503+09:00 sles12 ntpd[1457]: proto: precision = 0.700 usec
2014-12-30T12:30:55.631189+09:00 sles12 ntpd[1457]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
2014-12-30T12:30:55.631466+09:00 sles12 ntpd[1457]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
2014-12-30T12:30:55.631662+09:00 sles12 ntpd[1457]: Listen and drop on 1 v6wildcard :: UDP 123
2014-12-30T12:30:55.631878+09:00 sles12 ntpd[1457]: Listen normally on 2 lo 127.0.0.1 UDP 123
2014-12-30T12:30:55.632080+09:00 sles12 ntpd[1457]: Listen normally on 3 eth0 192.168.1.106 UDP 123
2014-12-30T12:30:55.632267+09:00 sles12 ntpd[1457]: Listen normally on 4 lo ::1 UDP 123
2014-12-30T12:30:55.632448+09:00 sles12 ntpd[1457]: Listen normally on 5 eth0 fe80::215:5dff:fe01:301b UDP 123
2014-12-30T12:30:55.632625+09:00 sles12 ntpd[1457]: peers refreshed
2014-12-30T12:30:55.633183+09:00 sles12 ntpd[1457]: Listening on routing socket on fd #22 for interface updates
sles12:~ #
sles12:~ # rcntpd restart
sles12:~ #
<---- success!!

問題なく ntpd が起動できました。yast からの ntp の設定も問題なく行えます。

-Keyword-
SUSE Linux Enterprise Server 12 SLES12 ntpd restart fail solved

islandcenter.jp
[PR]
# by islandcenter | 2014-12-06 19:56 | SUSE | Trackback | Comments(0)

SUSE Linux Enterprise Server 12 (SLES12) の snapper config ファイルは /etc/snapper/configs 以下にそれぞれ作成されます。snapper 本家の configs の記述を元に SLES12 で実際どのように設定されているかを確認してみました。

本家
http://snapper.io/manpages/snapper-configs.html

snapper の設定ファイルは

~# snapper -c MyConfig-file create-config /My-Mount-Point

で /etc/snapper/configs/ に My-Config-file として作られます。この内容を snapper の本家マニュアルを参考に SLES12 でどの様にチューニングされているか、あるいはチューニングするかを見てみましょう。

sles12:/etc/snapper/configs # cat myconfig

# subvolume to snapshot
SUBVOLUME="/btrfs"

※SnapShot を取るサブボリューム名、
ここでは /btrfs というディレクトリ(パーティション)を指定しています。btrfs では、パーティション内に subvolume という擬似的なパーティションを作成する事ができます。

例えば / (ルート)を btrfs にした場合、yast > Partitioner の中に btrfs の Subvolume Handling という項目があり、ここで擬似的なパーティションとして、 / (root) 全体のスナップショットを取らないように設定されています。
a0056607_2011768.jpg

仮に / に含まれる /srv をリストアターゲットとして選ぶ場合でも、擬似的なパーティションなので、/srv/ftp や /srv/www を個別に選択して特定できるということです。


# filesystem type
FSTYPE="btrfs"
※ ファイルシステムの定義ですね

# users and groups allowed to work with config
ALLOW_USERS=""
ALLOW_GROUPS=""

※ Snapper を利用許可するユーザ名/グループ名、スペースで区切りを入れます。root は常時許可されています。あまり使う事はないのでしょうが、 root ユーザと、あるスキルレベル以上のユーザに snap shot を使わせる場合に設定する事になるでしょう。

# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
# directory
SYNC_ACL="no"

※ ACL で.snapper にアクセス許可するかどうか。つまりデフォルトでは root 以外は snapper が利用できません。

# start comparing pre- and post-snapshot in background after creating
# post-snapshot
BACKGROUND_COMPARISON="yes"

※ SnapShot を作った後、圧縮するかどうか、デフォルトで Yes

# run daily number cleanup
NUMBER_CLEANUP="yes"

※ Cleanup アルゴリズムを動かすかどうかの指定、本家 snapper では "no" だが SLES12 では "yes" が指定されています。

# limit for number cleanup
NUMBER_MIN_AGE="1800"
NUMBER_LIMIT="50"
NUMBER_LIMIT_IMPORTANT="10"

※クリーンアップを行う間隔 1800 分(30時間ごと)に最低50までの若いスナップショットをとる。User Data が "yes" に指定されている重要なスナップショットは10個まで保存します。

SLES12 では yast > Snapper > "Select Snapshot" > Modify の中にこのパラメータ(らしき?)ものがありました。
http://doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/cha.snapper.html#sec.snapper.manage

によると User data のフィールドに(,)カンマで複数のパラメータを設定できるようです。本家のドキュメントによると important=yes を指定するとこのフラグの付いた一番若いスナップショットが維持されます。
a0056607_2045832.jpg


# create hourly snapshots
TIMELINE_CREATE="yes"

※ 一時間置きの定時スナップショットを取るかの指定、本家では"no" SLES12 では Yes に設定。

# cleanup hourly snapshots after some time
TIMELINE_CLEANUP="yes"

# limits for timeline cleanup
TIMELINE_MIN_AGE="1800"
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"

※ Time Line Clean up を行うかどうか、本家では "no", SLES12 では Yes, 最小時間は 1800 分(30時間)、1時間、一日、1か月、1年で最小でも取るべきスナップショットの数を10としています。

# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP="yes"

※ 何も変更がなかったスナップショットの善後をクリーンアップするかどうか、本家での設定は "no", SLES12 では "yes"

# limits for empty pre-post-pair cleanup
EMPTY_PRE_POST_MIN_AGE="1800"

sles12:/etc/snapper/configs #

ということで、本家で使用している snapper のデフォルト設定は積極的に「使わない」方向で設定されています。 SLES12 では積極的に「使って」クリーンアップを自動で行うというチューニングがおこなわれているようです。

デフォルトで利用しても SLES12 では、snpapper で create-config を行った後、あえて変更すべき点もなさそうです。勿論、btrfs で snapper を使った場合、ディスク容量がパンパンになるまでスナップショットを取りますし、ファイルを削除しても snapper で簡単にロールバックできるという点も、運用ポリシーで管理しなければならないでしょう。

特に snapper の様々なドキュメントを見る限り、ファイルを削除せず「古いスナップショットを消してディスクを空ける」というのが定説のようです。

誤訳や誤解している部分がありましたら、コメントください。

islandcenter.jp

-Keyword-
SUSE Linux Enterprise Server 12 SLES12 btrfs snapper スナップショット チューニング
[PR]
# by islandcenter | 2014-12-01 20:21 | SUSE | Trackback | Comments(0)

ここでは SUSE Linux Enterprise Server 12 (SLES12) の ext3 パーティションを BTrFSに変換する手順をまとめました。本家 Oracle に詳細な手順がありますが、この手順を SUSE12 風にアレンジします。

5.11 Ext2、Ext3またはExt4ファイル・システムのBtrfsファイル・システムへの変換
https://docs.oracle.com/cd/E39368_01/b71105/ol_use_case7_btrfs.html


-変換前に-

からなず、失うと強く後悔するファイルは別メディアにバックアップしましょう。どんな場合でもバックアップさえあれば、強く後悔せず、ただ辛い思いでリストアすれば、幾分気持ちが楽になるというものです。


-ボリュームのアンマウント-
次に変換するボリュームをアンマウントして fsck します。

yast からボリュームをアンマウントする場合、アンマウントするデバイスを選び、Edit
a0056607_1075852.jpg


(×) Mount Partition から "Do not mount partition"をチェックしてアンマウントします。
a0056607_10102096.jpg



-fsck でファイルシステムのチェック-

sles12:~ # ls /dev/x*
/dev/xconsole /dev/xvda /dev/xvda2 /dev/xvdb1 /dev/xvdc1
/dev/xvc0 /dev/xvda1 /dev/xvdb /dev/xvdc
sles12:~ #
sles12:~ # fsck.ext3 -f /dev/xvdc1
e2fsck 1.42.11 (09-Jul-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/xvdc1: 13/262144 files (15.4% non-contiguous), 94919/1048320 blocks
sles12:~ #


-変換-

sles12:~ # btrfs-convert /dev/xvdc1
creating btrfs metadata.
creating ext2 image file.
cleaning up system chunk.
conversion complete.
sles12:~ #


yast で確認してみます

無事変換できたようです。
a0056607_10145635.jpg


-BTrFSのマウント-
yast > Partitioner > パーティション > edit からマウントポイントを指定してマウントします。
Subvolume Handling のメニュー項目が増えています。
a0056607_1015532.jpg


mount できたかどうか確認してみます。
a0056607_10181337.jpg

上手く変換できたようです。

snapper に登録します。

sles12:~ #
sles12:~ # snapper -c my-config create-config /ext
sles12:~ #

新しい Snap Shot コンフィギュレーションができています。
a0056607_10203094.jpg


そのほかの情報は
islandcenter.jp

-keyword-
SUSE Linux Enterprise Server 12 SLES12 btrfs ext3 ext4 フォーマット変換、ファイル スナップショット
[PR]
# by islandcenter | 2014-12-01 10:23 | SUSE | Trackback | Comments(0)

XEN などの仮想環境で、テキスト端末から

# xm console windows-vm (または xl, virsh で)

などとやってしまうと、本来 GUI 環境で動くべき Windows のコンソールが出ません。出来ないものは出来ないので、kill してしまうしか方法がありません。

しかし、肝心のテキスト端末にプロンプトが戻ってこないわけです。

その場合は、別なテキスト端末を開いて、プロセス番号を探して kill します。


sles11:~ # who 誰がどの端末からログインしているかを調べる
root pts/6 Nov 29 06:45 (192.168.1.45)
root pts/10 Nov 29 08:01 (192.168.1.45)
sles11:~ #

pts で二つセッションが開いています。ttyの場合もあります。
そこで ps コマンドで pts を grep してみます。

sles11:~ # ps ax | grep pts
2524 ? Ss 0:01 sshd: root@pts/6
2614 pts/6 Ss 0:00 -bash
4419 ? Ss 0:00 sshd: root@pts/10
4424 pts/10 Ss 0:00 -bash
27171 pts/6 Sl+ 0:00 /usr/lib64/xen/bin/xenconsole 5 --num 0 --type serial
<---- 犯人はこいつだ
27238 pts/10 R+ 0:00 ps ax
27239 pts/10 S+ 0:00 grep --color=auto pts
sles11:~ # kill 27171 <--- kill する
sles11:~ #


プロンプトが戻ります。

そのほかの情報は
islandcenter.jp

-Keyword-
SUSE SLES xen xm console xl console virsh console 仮想コンソール プロンプトが戻らない できない。
[PR]
# by islandcenter | 2014-11-30 12:08 | XEN | Trackback | Comments(0)

前回
SLES12 大きく変わった仮想化管理
で仮想管理の方法が随分変わり、戸惑いました。その続きです。

SUSE Linux Enterprise Server12 (SLES12) では大きくXEN 仮想化管理が変わりました。従来の xend から libvirtd に移行しました。内部的にどうなった、こうなったという話はこちらにまかせて

SUSE Linux Enterprise Server 12 Virtualization Guide

実際のオペレーションから、、どうすればいいのかを書いてみます。

- xm -

まず、/usr/sbin/xm 自体がありません。/usr/sbin/xl に置き換わっています。

また、xl コマンド自体が libvirtd を管理する virsh コマンドとの互換性がありません。
xl コマンド自体は xm との下位互換性を維持するために存在するものです。

- virsh / virt-manager -

このツールは /etc/libvirt/libxl/myvm.xml を使って制御します。

virsh create /etc/libvirt/libxl/myvm.xml で起動
virsh list (libvirt 管理のものだけ表示、xl create したものはリストされない)
virsh shutdown myvm (xl create したものはシャットダウンできない)

※ xl で起動、終了はできるが GUI コンソールを virt-manager からは制御できない。(バックグラウンドで virsh を使うから)

実際に virt-manager で作成した仮想化された SLES を動かしてみます。


xl create -f /etc/xen/vm <---- xl コマンドで vm ファイルを指定して起動

sles12:~ # xl create -f /etc/xen/vm/sles12
Parsing config from /etc/xen/vm/sles12

sles12:~ # xl list <--- 起動した
Name ID Mem VCPUs State Time(s)
Domain-0 0 7237 4 r----- 236110.8
sles12 31 1024 2 r----- 9.6

sles12:~ # xl console sles12 <--- コンソールを切り替え
Welcome to GRUB!

: 中略

[ OK ] Reached target Host and Network Name Lookups.
[ OK ] Started Login Service.

Welcome to SUSE Linux Enterprise Server 12 (x86_64) - Kernel 3.12.28-4-xen (xvc0).

linux-gisu login: <---- xl console で操作できる。

CTRL+] でコンソールに戻る

sles12:~ # xl shutdown sles12 <--- シャットダウンしてみる
Shutting down domain 31
sles12:~ #


しかし、この方法では virt-manager からGUI制御できません。ドメインのリストにも出ません。

virsh で制御してみます。


sles12:~ # virsh console sles12
Connected to domain sles12
Escape character is ^]
Welcome to GRUB!

: 中略

Loading Linux xen ...
Loading initial ramdisk ...
[ 0.161234] PCI: Fatal: No config space access function found
[ 0.161545] Unable to read sysrq code in control/sysrq
[ 1.841010] i8042: No controller found

Welcome to SUSE Linux Enterprise Server 12 (x86_64) - Kernel 3.12.28-4-xen (xvc0).

linux-gisu login:

CTRL+]で終了

sles12:~ #
sles12:~ # virsh shutdown sles12 <--問題なくシャットダウン
Domain sles12 is being shutdown
sles12:~ #

virt-manager からコンソールを開くことができます。
a0056607_1336594.jpg



- xl -

/etc/xen/bm/myvm を使って制御
xl list (libvirt で稼働中のものも表示)
xl create -f /etc/xen/vm/myvm で起動(-f は必須のオプションとなります)
xl shutdown myvm で終了

virsh shutdown では終了できない。
virt-manager からGUIコンソールに接続できない。

virtsh create したものは

sles12:~ # xl shutdown sles12 <---- xl shutdown できない
Warning: This domain is managed by libvirt. Using xl commands to modify this
domain will result in errors when virsh or virt-manager is used.
Please use only virsh or virt-manager to manage this domain.

(This check can be overridden with the -f option.)
sles12:~ #
sles12:~ # virsh shutdown sles12 <---- virsh shutdown はできる。
Domain sles12 is being shutdown

xl crerate した Dom-U は virt-manager からGUI制御できないため、Windows のような GUI を必要とする Domain-U は制御できません。万が一、ネットワークの構成を変えたい、などの場合、リモートデスクトップのセッションが切れると、制御不能となってしまいます。

そこで、Windows 系のシステムを SLES12 に移植する場合は、vm ファイルを使う xl ベースの操作ではなく virsh / virt-manager への移行が必要になります。

ということで SLES12 には xen2libvirt という変換ツールがあります。

https://www.suse.com/documentation/sles-12/book_virt/data/xen_xen2libvirt.html

が見事に失敗しました。(Failed)

sles12:~ # xen2libvirt -f xm -c /etc/xen/vm/myvm.xml
libvirt: Config File error : configuration file syntax error: memory conf:1: expecting a name
Traceback (most recent call last):
File "/usr/sbin/xen2libvirt", line 121, in
import_domain(conn, args.path, args.format, args.convert_only)
File "/usr/sbin/xen2libvirt", line 77, in import_domain
xml = conndomainXMLFromNative('xen-xm', config, 0)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3344, in domainXMLFromNative
if ret is None: raise libvirtError ('virConnectDomainXMLFromNative() failed', conn=self)
libvirt.libvirtError: configuration file syntax error: memory conf:1: expecting a name
sles12:~ #

という事で、SLES11 から SLES12 へP2P Migration する場合は、xl での起動、終了はできるのですが、設定変更などが必要な場合 vm2libvirt で convert をする必要があります。しかしうまく動かないケースが多くあります。

そこで「 virt-manager で作り直す」という手段が一番手っ取り早い、という事になります。

- virt-manager は /usr/bin へ-

virt-manager の GUI は /usr/sbin から /usr/bin へ移動しました。しかし、実際に利用するには root の権限が必要です。実際にユーザが仮想マシンを操作できる様にするには Policy Kit による認証が必要なようです。

第9章 PolKit を利用した権限認可
http://manual.geeko.cpon.org/ja/cha.security.policykit.html

https://www.suse.com/documentation/sled-12/book_security/data/cha_security_policykit.html


適切に設定すれば、一般ユーザが、自前の VPS を作成する事ができるわけですね。

- 仮想マシンのイメージ -

SLES12 での XEN 環境での仮想マシンイメージのデフォルトストレージの格納場所は /var/lib/xen/images から /var/lib/libvirt/images に代わりました。iSCSI や NFS などで共有している環境では問題になってくるでしょう。

仮想マシンの起動と終了

virsh 環境で作成された起動ファイルは /etc/libvirt/libxl/xxxxxx.xml という名前で保存されます。xm コマンドの様に仮想マシン名だけで create できません。 xml ファイルをフルパスで指定します。


sles12:/etc # virsh list
Id Name State
----------------------------------------------------
12 sles12 running
19 salamandra running

sles12:/etc # virsh create /etc/libvirt/libxl/myvm.xml
Domain myvm created from /etc/libvirt/libxl/myvm.xml

sles12:/etc # virsh list
Id Name State
----------------------------------------------------
12 sles12 running
19 salamandra running
34 myvm running

sles12:/etc # virsh shutdown myvm
Domain myvm is being shutdown

sles12:/etc #


- まどめ -

xl コマンドと virsh コマンドとを使い分ける注意点をまとめてみましょう。

- xm はなくなり xl に変わった。
- xl create したものは virsh shutdown できない。
- xl list では virsh で起動しても xl list で確認できる。
- xl create したものは virt-manager から制御、仮想コンソールアクセスはできない。
- xl create したものは virsh consolle できない、xl console を使う。
- virsh create したものは xl shutdown できない。
- virsh create したものは xl console できない。virsh console を使う。
- xl create したものは virsh list / virt-manager で確認できない。
- virt-manager で作成した Dom-U は xl create/shutdown できない virsh で行う。

SLES12 における仮想化は、xend からの移行を考慮したものです。単体の「ハイパーバイザー」そのものの提供から、プライベートクラウド基盤への移行を念頭に置いた実装への過渡期でしょう。

また virsh を中心としたオペレーションでは、ほとんどXEN と KVM のハイパーバイザーの違いを意識せずにオペレーションをする事ができます。

SLES10/11 からの単純移行、平行運用は、オペレータの負荷を考慮すると、あまりお勧めできるものではありませんが、今後のプライベートクラウド基盤としてはOpenstack などの標準的な機能に準拠した実装ができます。

それでも、過去の仮想基盤がそのまま移行できることは、やはり便利な事です。

関連記事
SUSE SLES12 の大きな変化 systemd、さらば init
SUSE Enterprise Server (SLES12) on SLES12+XEN 準仮想化


その他の情報はこちら
islandcenter.jp

-Keyword-

SUSE Linux Enterprise Server 12 (SLES12) XEN KVM 仮想化 libvirtd xend virsh xl コマンド
[PR]
# by islandcenter | 2014-11-26 13:44 | SUSE | Trackback | Comments(0)

-現象-

movaXterm で、ssh キーが整合しない。
同じホスト名、あるいはIPアドレスで接続先を再インストールしたなど。


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
00:72:b2:ee:e9:53:9b:6f:96:e7:8b:f7:74:db:f2:b3.


If you changed or re-install this server recently, and if you are really sure
that no other computer is using its IP address, then you can reset this alarm
by deleting the ~/.ssh/known_hosts in a new MobaXterm local terminal.
Add correct host key in /home/mobaxterm/.ssh/known_hosts to get rid of this mess
Offending ECDSA key in /home/mobaxterm/.ssh/known_hosts:1
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attac
X11 forwarding is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,keyboard-interactive).


SUSE Linux の場合 ~#.ssh/known_hosts のホスト名、もしくはIPの行を消します。

movaXterm の場合
C:/user/myname\Documents\MobaXterm\home に known_host があるので、ここから問題の接続キーを削除します。

Settings > General で確認できます。
a0056607_11151294.jpg




islandcenter.jp
[PR]
# by islandcenter | 2014-11-17 13:10 | SUSE | Trackback | Comments(0)

SUSE Linux Enterprise Server 12 のメダマの一つに Btrfs(B Tree FS、ビー木FS、バターFSなどと言うようです)を使ったスナップショットの機能があります。

SLES12 は Btrfs がデフォルトの / (ルート)ファイルシステムとなりました。 btrfs はopenSUSE13.2 からもデフォルトルートのファイルシステムです。

追加ボリュームはデフォルトが XFS です。当然、追加ボリュームに btrfs も利用できます。

ここでメダマとなる、スナップショットの機能を見てみます。

-用意-
こんな感じのパーティションを用意しました。
a0056607_17425073.jpg


Btrfs と EXT3の異なるパーティションを作ってマウントします。この作業は全て yast > System > Partitioner で行う事ができます。

初期状態はこんな感じです。

sles12:~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda2 5244928 3115132 1861572 63% /
devtmpfs 500424 8 500416 1% /dev
tmpfs 530780 0 530780 0% /dev/shm
tmpfs 530780 8036 522744 2% /run
tmpfs 530780 0 530780 0% /sys/fs/cgroup
/dev/xvda2 5244928 3115132 1861572 63% /var/spool
/dev/xvda2 5244928 3115132 1861572 63% /var/opt
/dev/xvda2 5244928 3115132 1861572 63% /var/lib/pgsql
/dev/xvda2 5244928 3115132 1861572 63% /var/lib/named
/dev/xvda2 5244928 3115132 1861572 63% /var/crash
/dev/xvda2 5244928 3115132 1861572 63% /srv
/dev/xvda2 5244928 3115132 1861572 63% /var/tmp
/dev/xvda2 5244928 3115132 1861572 63% /home
/dev/xvda2 5244928 3115132 1861572 63% /opt
/dev/xvda2 5244928 3115132 1861572 63% /boot/grub2/x86_64-efi
/dev/xvda2 5244928 3115132 1861572 63% /tmp
/dev/xvda2 5244928 3115132 1861572 63% /boot/grub2/i386-pc
/dev/xvda2 5244928 3115132 1861572 63% /var/log
/dev/xvda2 5244928 3115132 1861572 63% /usr/local
/dev/xvda2 5244928 3115132 1861572 63% /var/lib/mailman
/dev/xvdb1 4193280 16592 3918784 1% /btrfs
/dev/xvdc1 4061888 8252 3843972 1% /ext

sles12:~ #

※ btrfsでは df コマンドでの容量チェックはあまり意味がありません。btrfs のコピーオンライト(COW)の効果を見たかったのですが、snapshot の効果が優先で、 COW の効果はないようです。

-snapper の有効化-

この状態で yast2 > snapper を起動します。
a0056607_19342243.jpg


この状態では snapper の初期設定ができていないため、snapper は起動できません。そこで snapper の初期化を行います。

※ コマンドラインから snapper GUI を起動する場合は、X端末のコンソールから
# yast2 snapper &
で起動します。

4.4 Snapper設定の作成と変更
https://www.suse.com/ja-jp/documentation/sles-12/book_sle_admin/data/sec_snapper_config.html


snapper -c config-name create-config /your-mount-point

sles12:~ # snapper -c myconfig create-config /btrfs

設定ファイルは /etc/snapper/configs に作成されます

sles12:~ # ls /etc/snapper/configs/myconfig -l
-rw-r----- 1 root root 934 Nov 28 12:16 /etc/snapper/configs/myconfig
sles12:~ # cat /etc/snapper/configs/myconfig

# subvolume to snapshot
SUBVOLUME="/btrfs"

# filesystem type
FSTYPE="btrfs"
:
: 以下略
:

sles12:~ #


これで yast > snapper を起動することができます。
a0056607_19392129.jpg


-snapper のデフォルト設定-
デフォルトでは snapper は一時間ごとにタイムラインのスナップショットを作成します。古いスナップショットは自動的に削除されます。
a0056607_2121430.jpg


4.1 デフォルト設定
https://www.suse.com/ja-jp/documentation/sled-12/book_sle_admin/data/sec_snapper_setup.html#snapper_dir-excludes

- snapshot の保存先 -
snapshot は同じ btrfs パーティションの .snapshots ディレクトリに作成されます。他のパーティションやファイルシステムは利用できません。したがってスナップショットを取る実ファイルサイズの倍以上の空き容量が同じパーティションにあることが推奨されています。

第4章 snapper を利用したスナップショット採取と巻き戻し
http://manual.geeko.cpon.org/ja/cha.snapper.html

実際には .snapshots にスナップショットファイルが保存されています。

sles12:/btrfs # ls -l
total 359676
drwxr-x--- 1 root root 8 Nov 28 14:30 .snapshots
-rw-r--r-- 1 root root 122765701 Nov 28 14:33 file-a.txt
-rw-r--r-- 1 root root 122765626 Nov 28 13:35 file-b.txt
-rw-r--r-- 1 root root 122765701 Nov 28 14:34 file-c.txt
sles12:/btrfs # du -h
0 ./.snapshots/1/snapshot/.snapshots
0 ./.snapshots/1/snapshot
4.0K ./.snapshots/1
0 ./.snapshots/2/snapshot/.snapshots
118M ./.snapshots/2/snapshot
118M ./.snapshots/2
0 ./.snapshots/3/snapshot/.snapshots
235M ./.snapshots/3/snapshot
235M ./.snapshots/3
0 ./.snapshots/4/snapshot/.snapshots
235M ./.snapshots/4/snapshot
235M ./.snapshots/4
586M ./.snapshots
937M .
sles12:/btrfs #


-スナップショットからファイルをロールバックする-
snapper から、ロールバックしたいポイントを選んで "Show Changes" を押します。
a0056607_2126153.jpg


実際にファイルの変更点が確認できます。
a0056607_21434273.jpg


そこで、ロールバックしたいファイルを選び、"Restore Selected" を押すと
a0056607_21305714.jpg


ファイルが元にロールバックされます。
a0056607_21313426.jpg


-btrfs でのファイルサイズの確認-

実際に df コマンドでは使用しているファイルサイズの確認はできません。そこで

# btrfs filesystem df /your-mount-point

で確認します。

sles12:/btrfs # btrfs filesystem df /btrfs
Data, single: total=840.00MiB, used=702.68MiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=264.00MiB, used=992.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B
sles12:/btrfs #


-削除したファイルの復旧-
スナップショットが取れるという事は、削除ファイルの salvage もできるということです。

sles12:/btrfs # ls
.snapshots file-a.txt file-b.txt file-d.txt

ファイルを消す
sles12:/btrfs # rm file-d.txt
sles12:/btrfs # ls -l
total 239784
drwxr-x--- 1 root root 38 Nov 29 00:30 .snapshots
-rw-r--r-- 1 root root 122765671 Nov 28 16:53 file-a.txt
-rw-r--r-- 1 root root 122765626 Nov 28 13:35 file-b.txt
sles12:/btrfs # 消えた


TimeLine を選び "Show Changes"
a0056607_8325722.jpg


消されたファイルを選び "Restore Selected"
a0056607_8364839.jpg


ファイルが元に戻ります。

sles12:/btrfs # ls -al
total 239848
drwxr-xr-x 1 root root 80 Nov 29 08:08 .
drwxr-xr-x 1 root root 152 Nov 28 10:43 ..
drwxr-x--- 1 root root 38 Nov 29 00:30 .snapshots
-rw-r--r-- 1 root root 122765671 Nov 28 16:53 file-a.txt
-rw-r--r-- 1 root root 122765626 Nov 28 13:35 file-b.txt
-rw-r--r-- 1 root root 64251 Nov 28 14:49 file-d.txt
sles12:/btrfs #

--
実際に"ファイルのロールバック"という作業はあまりやりたい作業ではありません。おそらく通常の運用では、年に1度やるかやらないかの作業かもしれません。

また、ファイルのロールバックは、下手をすると「誤ったロールバック」という事故もあるわけです。

「ロールバックが簡単にできる」

という事を大きなメリットとして考えるのは誤りです。ロールバックは十分な検証と訓練、マニュアル化が重要です。やはり別メディアへのバックアップは重要です。

また、通常のバックアップでは「スナップショット」をバックアップする事はできません。バックアップの操作は、「今生きているライブなデータ」をバックアップします。(出来るのかもしれないけれど...)スナップショットが万能の萬金丹の様な効果があるわけではない事を心すべきです。

しかし、スナップショットからのロールバックは、短時間でシステムの復旧を行う事ができます。例えばスタティックなウェブサイトの改ざんからの復旧であるとか、ミスオペレーションからの急速復旧など -- もっともミスオペするオペレータが正しくロールバックできるスキルがあるかは別ですが -- には効果があります。

また、XEN の様な基本機能にスナップショットがない仮想化システムでは、システムのロールバックは魅力的な機能です。仮想環境下で、アプリケーションのインストール手順やテストに失敗した場合など、容易にロールバックできるのは魅力的でしょう。

重要なことはスナップショットを理解し、ロールバックの手順をしっかり確認する事です。

そのほかの情報はこちらから
islandcenter.jp

-Keyword-

SUSE Linux Enterprise Server 12 SLES12 btrfs snapshot スナップショット ファイルのロールバック機能 サーバー 仮想化
[PR]
# by islandcenter | 2014-11-16 11:22 | SUSE | Trackback | Comments(0)

仮想化管理は SLES12 の大きな変更点です。XEN 仮想化環境では xm コマンドが xl コマンドに代わりました。

これは XEN 4.4 から 4.5 に移行するにあたり xend が無くなる序章の様です。
http://wiki.xen.org/wiki/XL

副作用として xm による VM の作成ができなくなります。代わりに Libvirt による VM の作成が用意されました。

実際にSLES11 と SLES12 を見比べてみると xend が sles12 では使われていないことが判ります。

-SLES11-

SLES11:~ # ps ax | grep xend
3863 ? S 0:00 /usr/bin/python /usr/sbin/xend start
3864 ? SLl 160:40 /usr/bin/python /usr/sbin/xend start
3923 ? S 0:00 python /usr/lib64/python2.6/site-packages/xen/xend/server/HalDaemon.py
18283 pts/13 D+ 0:00 grep xend
SLES11:~ #

-SLES12-

SLES12:~ # ps ax | grep xend
8506 pts/10 S+ 0:00 grep --color=auto xend
SLES12:~ #

その代り SLES12 では libvirtd が起動しています。

SLES12:~ # ps ax | grep libvirt
1203 ? SLsl 0:02 /usr/sbin/libvirtd --listen
8718 pts/10 S+ 0:00 grep --color=auto libvirt
SLES12:~ #

ここでも "さらば xend こんにちは libbirt" という変更がありました。

xl コマンドは libvirtd へのコマンドインターフェースになります。

XL vs Xend Feature Comparison
http://wiki.xen.org/wiki/XL_vs_Xend_Feature_Comparison

SUSEのドキュメントに XM の Libvirt へのインポート方法が記載されています。
Import Xen Domain Configuration into libvirt
https://www.suse.com/documentation/sles-12/book_virt/data/xen_xen2libvirt.html

SUSE Linux Enterprise Server 12 Virtualization Guide
https://www.suse.com/documentation/sles-12/singlehtml/book_virt/book_virt.html

xl or virsh ?

仮想マシンの管理コマンドとしては別に virsh コマンドがあります。
Choice of Toolstacks
http://wiki.xen.org/wiki/Choice_of_Toolstacks



One really great feavirtd ture of the Xen Project hypervisor is that there are several choices of toolstacks that can be used to manage it.

とあり、xen project では様々な管理ツールを提供することで、柔軟な運用ができる、と言うような一文がありました。つまり xl コマンドと virsh コマンドは、いわば並列状態。環境にあったツールを使えばよい、という事になります。選択肢が増えた分、どっちを使っていいかわからない状態もある訳ですね。上の文書にあるように一応 XEN 4.4 では xl コマンドがデフォルトです。

OpenStack などの xapi を使うクラウド環境では libvirt との相性が良さそうなので、xend > libvirtd への変更は将来への布石でしょうか。

具体的に従来の SLES11+XEN 環境から SLES12 へ移行する方法については、別の機会に報告します。

続き
SUSE SLES12 の XEN仮想化管理

その他の情報は
islandcenter.jp
[PR]
# by islandcenter | 2014-11-14 09:52 | SUSE | Trackback | Comments(0)

SUSE Linux Enterprise Server 12 (SLES12) が出て大騒ぎしている間に、openSUSE 13.2 がリリースされました。

早速、インストールしてみたのでファーストインプレッションです。

なお、比較として SLES12 のファーストインプレッションはこちらです。
SUSE (SLES 12) ファーストインプレッション

ほとんど SLES12 と同じプロセス

openSUSE は SLES の先行プロジェクトである、という思いに反して、SLES12 と openSUSE12.3 は非常に似通ったものでした。また、openSUSE12.3 より先に同じ技術が利用されている SLES12 が出たこともちょっとした驚きです。

インストール

インストール言語は English、キー配列 Japanese でインストールします。途中追加言語を入れるのを忘れたのですが、これは後で YaST の Language 設定でインストールできます。

なぜ、インストール言語を Japanese にしないのかというと、例えば YaST メニューにある "Services Manager" というキーワードが御丁寧にも「サービスマネージャー」などと日本語に翻訳されているとします。世界中にある豊富な SUSE Linux の情報を調べる事ができません。

いちいち「日本語>英語」変換しなければならないです。エラーメッセージが余計に日本語化されていると、まずその日本語で検索して結果が出てくるはずはないでしょう。だから私は日本語でのインストールはしません。

もっとも openSUSE はサーバー用途以外にデスクトップ、ラップトップ用途でも利用できる優れた機能があります。そこで、サーバー用途以外に、実際に生産性のあるアプリケーションを使う場合は日本語で利用する事になるでしょう。

デフォルトで BtrFS

openSUSE では 13.1 までデフォルトで EXT4 でした。しかしコンマ1のアップデートで B Tree FS (BtrFS) がデフォルトです。ここも SLES12 と同じ。他に選択できるのは EXT4 と XFS です。
a0056607_13585332.jpg


ここは SLES12 と違うオペレータの設定

初期ユーザの設定は従来の openSUSE と変わりません。デフォルトで root パスワードと一致するよう "Use this password for administrator" と "Automatic Login" のチェックが付いています。
a0056607_140812.jpg

これらのチェックを外すと、 root パスワードの設定を別なものに設定できます。

root パスワードの設定では、Test 用のボックスが使えます。このあたりの親切設計も SLES と同じです。従来の openSUSE では Test ボックスがありませんでした。
a0056607_141183.jpg


サマリ画面

openSUSE では FireWall が Enable, SSH が Disable です。これもデスクトップアプリケーションを主に使う目的では意にかなっています。初期トラブルを避けるためには、ここは Firewall を Disable に、SSH を Enable にします。
a0056607_1423849.jpg


systemd の target設定

これも SLES12 と同じ systemd の設定です。デフォルトは Graphical Mode です。サーバー用途で使う場合は Text Modeで良いでしょう。この切り替えは、後で yast の Service Manager から行う事ができます。
a0056607_142412.jpg

関連記事
SUSE SLES12 の大きな変化 systemd、さらば init

ということで、サマリが整った後はインストールを開始します。15分から20分ほど(マシンの性能による)で自動的に再起動、ログインプロンプトが出てきました。

後処理

一応、ネットワークの設定が DHCP なので、これを固定IPにしてみます。モバイルで使う場合は DHCP でも構わないでしょう。

サーバー名が Linux-xxxx.site なので /etc/HOSTNAME を書き換えてホスト名を固定します。

NTPは自動的に opensuse.org の NTP プールを設定していました。SLES12 では未定義なので手動で設定しました。ここは openSUSE と 商用版 SLES との違いです。

言語設定(Language) に追加言語 "Japanese" を追加します。

先祖帰りした GUI版 yast2

すっかり使いづらくなった SLES12 の yast と違って openSUSE13.2 の yast2 は、先祖帰りしたように、左のペイン、右のアイコンという配置です。
a0056607_1474519.jpg



カーネルバージョン

カーネルバージョンは 3.16 です。SLES12 は 3.12 でした。このあたりは openSUSE の方が実験的です。

sles123:~ # uname -a
Linux sles123 3.16.6-2-desktop #1 SMP PREEMPT Mon Oct 20 13:47:22 UTC 2014 (feb42ea) x86_64 x86_64 x86_64 GNU/Linux
sles123:~ # cat /etc/SuSE-release
openSUSE 13.2 (x86_64)
VERSION = 13.2
CODENAME = Harlequin
# /etc/SuSE-release is deprecated and will be removed in the future, use /etc/os-release instead
sles123:~ #

--
駆け足で、openSUSE13.2 を見てみましたが、 13.1 とは大きく変化しており、中身は SLES12 とほとんど変わりない、という感想です。バージョン番号こそ 13.2 ですが SLE12 のオープン版の位置づけでした。

SLES12 を社内に導入する前に、ちょっと SUSE をいじってみたいという目的や、ラップトップ、デスクトップPCの置き換えには、一つの選択肢としての価値があります。元々、周辺機器の認識には定評がある SUSE なので、ラップトップでどの様に使えるかも楽しみです。

また商用版である SLES12 との共通点が多いので、かなり堅牢で、YaST 一つとってもGUIは使いやすそうなでした。た

だ例の左上の"Activities"から始まるI/Fは何とかして欲しいものです。

そのほかの情報はこちら
islandcenter.jp
[PR]
# by islandcenter | 2014-11-12 14:10 | SUSE | Trackback | Comments(0)

SUSE Linux Enterprise Server 12(SLES12) では,init に代わり systemd が採用されています。

openSUSE で既に採用されており、あらかじめ知識として知っておくべき事でした。

openSUSE 12 から、

「随分起動と終了が速くなったなぁ」

と単純に考えていたのですが、本気で付き合わなかった罰は後から付いてきます。

init を使わないので、当然 /etc/inittab も使わなければ /etc/init.d/ の下にあるスクリプト群も使いません。一部の互換性の為に存在しているだけです。

という事で、SLES12 以降では /usr/sbin/rcXXXXX のスクリプトを使って、コマンドラインからサービスの再起動を行います。まず、SLES11 から SLES12 に乗り換えたオペレータがハマる第一の関門です。/etc/init.d/ のスクリプトが随分少ないな、と不審に思っていましたが、サービスの起動の仕掛けが全く変わりました。

そもそも init とは

init は Linux が起動して、最初に実行するプロセスです。/etc/inittab に記述された runlevel によって ..../rcN.d/ 配下のシンボリックリンク先、 /etc/init.d/xxxxx のシェルを順次実行します。サービスは逐次起動します。DOS で言う所の Autoexec.bat みたいなものです。したがって時間が掛かります。

シャットダウンプロセスも init のシャットダウンプロセスによって順次終了します。

しかし、サービスの中には依存性のないものもあり、いちいち前の処理が終わってから起動/終了しなくても構わないサービスもあります。平行起動しても構わないものであれば同時に起動してもよい。終了、シャットダウンする時も、別に逐次処理で終了する必要はない。

そこで systemd

systemd によって、システムの起動と終了は格段に高速になるという事です。

SUSE Linux では systemd のパラメータを記述した、サービスユニット設定ファイルは /etc/systemd/system の下にあります。xxxxx.service というファイル名です。サービスは UNIT という概念で管理されます。

例えば httpd のサービスは次の様に記載されています。

sles12:/etc/systemd/system # cat httpd.service
[Unit]
Description=The Apache Webserver
Wants=network.target nss-lookup.target
After=network.target nss-lookup.target
Before=getty@tty1.service

[Service]
Type=notify
PrivateTmp=true
EnvironmentFile=/etc/sysconfig/apache2
ExecStart=/usr/sbin/start_apache2 -D SYSTEMD -DFOREGROUND -k start
ExecReload=/usr/sbin/start_apache2 -D SYSTEMD -DFOREGROUND -k graceful
ExecStop=/usr/sbin/start_apache2 -D SYSTEMD -DFOREGROUND -k graceful-stop

[Install]
WantedBy=multi-user.target
Alias=httpd.service
sles12:/etc/systemd/system #

この中の wants という記述が、サービスの依存性を示します。apache が起動する前に起動すべきサービスはこれですよ、という事です。そこで不要な依存性を排除して、非同期にサービスを起動するのが systemd という訳です。

過去のクセで /etc/ini.d/apache2 restart などのコマンドでサービスのリスタートは行えなくなりました。ただし SUSE Linux の場合 /usr/sbin/rcXXXX というシェルがあるので、このシェルを使ってコマンドラインからサービスの再起動ができます。

SLES11 までは /usr/sbin/rcXXXXX は /etc/init.d/XXXXX へのシンボリックリンクでした。


sles11:/usr/sbin # ls rc* -al
lrwxrwxrwx 1 root root 17 Aug 2 2012 rcacpid -> /etc/init.d/acpid
lrwxrwxrwx 1 root root 21 Jun 23 2012 rcalsasound -> /etc/init.d/alsasound
lrwxrwxrwx 1 root root 19 Oct 9 2013 rcapache2 -> /etc/init.d/apache2
lrwxrwxrwx 1 root root 16 Jun 23 2012 rcarpd -> /etc/init.d/arpd
lrwxrwxrwx 1 root root 15 Jun 23 2012 rcatd -> /etc/init.d/atd
: 略

SLES12 からは /usr/sbin/rcXXXXX は /usr/sbin/service というスクリプトへのシンボリックリンクです。

sles12:/usr/sbin # ls rc* -al
lrwxrwxrwx 1 root root 7 Nov 7 02:26 rcSuSEfirewall2 -> service
lrwxrwxrwx 1 root root 7 Nov 7 13:10 rcapache2 -> service
lrwxrwxrwx 1 root root 7 Nov 7 02:08 rcapcupsd -> service
lrwxrwxrwx 1 root root 7 Nov 7 02:17 rcatd -> service
lrwxrwxrwx 1 root root 7 Nov 7 02:21 rcauditd -> service
lrwxrwxrwx 1 root root 7 Nov 7 02:25 rcautofs -> service
: 略

/usr/sbin/service のスクリプトは /usr/bin/systemctl を呼び出します。これが systemd を制御します。/usr/lib/systemd/systemdに、デーモンの実体があります。

単純に systemctl を実行すると、サービスの一覧が出てきます。

sles12:~ # systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys..._misc.automount loaded active running Arbitrary Executable File F
sys-devi...i_video0.device loaded active plugged /sys/devices/pci0000:00/000
sys-devi...net-eth0.device loaded active plugged Ethernet Connection I217-V
sys-devi...sda-sda1.device loaded active plugged WDC_WD20EZRX-00D
sys-devi...sda-sda2.device loaded active plugged WDC_WD20EZRX-00D
sys-devi...sda-sda3.device loaded active plugged WDC_WD20EZRX-00D
sys-devi...sda-sda4.device loaded active plugged WDC_WD20EZRX-00D
sys-devi...sda-sda5.device loaded active plugged WDC_WD20EZRX-00D
sys-devi...sda-sda6.device loaded active plugged WDC_WD20EZRX-00D
: 以下略

systemctl は他にも、サービスの詳細な状態を調べたり、サービスの再起動、有効・無効化などのチェックに利用するコマンドです。

通常は yast(2) の Services Manager (従来の Run Level Editorに代わるもの)でサービスの起動と停止、有効・無効化、サービスの状態を調べます。
a0056607_8282344.jpg


a0056607_15132179.jpg


/sbin/init は実体はなく /usr/lib/systemd/systemd へリンクしているため、一応、従来の init コマンドと互換性を確保しています。

sles12:~ # whereis init
init: /sbin/init /etc/init.d /usr/share/man/man1/init.1.gz
/usr/src/linux-3.0.76-0.11/init /usr/src/linux-3.12.28-4/init
sles12:~ # ls /sbin/init -al
lrwxrwxrwx 1 root root 26 Nov 7 02:00 /sbin/init -> ../usr/lib/systemd/systemd
sles12:~ #

更に詳しい説明は管理ガイドをご参考ください。
SUSE Linux Enterprise Server 12 管理ガイド

当たり前の事ですが、起動は早くなっても中で systemd がサービスを処理しているため、 Login: プロンプトが出てからの動作は非常に重いです。

サービスの再起動や再起動などで init を使っていたクセがあった私にとっては

さらば init

なのですね。

-Key Word-
SUSE Linux SLES12 init initd systemd systemctl サービスの管理 サービスの起動 サービスの終了 サービスの再起動 できない。

他の情報はこちら
islandcenter.jp
[PR]
# by islandcenter | 2014-11-11 08:38 | SUSE | Trackback | Comments(0)

前回、Hyper-V 環境に SUSE Linux Enterprise Server 12 (SLES12) をインストールし、インストールの流れを見てみました。
SUSE (SLES 12) ファーストインプレッション

数年ぶりのメジャーアップデートなので SUSE Linux Enterprise Server 12 (SLES12) は様々な所でインターフェースが従来と異なっています。openSUSE 12/13 に近い感じです。バージョンは SLES12 ですが、細かな点は openSUSE 13 の技術が反映されています。これを「進化」と捉えるべきか、「改良」と捉えるべきか、「改悪」と捉えるべきかは、様々なご意見があるでしょう。

実際にインターフェースが異なるために SLES9/10/11 から SLES12 に移行すると戸惑う事が多いでしょう。その一つが XEN による仮想マシンの追加です。

yast2 > virt-manager より従来のアイコン "Create New Virtual Machine" をクリックすると
a0056607_9283646.jpg


こんな画面が出てきます。ここでは選択肢として、

- ネットワークブート
- 仮想マシンのイメージのインポート

です。iso や 物理DVDからの作成はできない様になっています。しかし一番下の Paravirt を Full Virt に変えると ISO からのインストールができる様になります。
a0056607_929285.jpg

「何! SLES12 は完全仮想化(Full Virtual)しかできないのか?」

とビックリする事になります。そこで、ネットワークブートする環境をどう構築するのか、という悩みにぶち当たってしまいます。

また "Create New Virtual Machine" から作成すると、仮想マシンの作成は ISO イメージを自動判別してウィザード形式で行われます。
a0056607_9314936.jpg


SLES12 上で SLES を準仮想化(Para virt)するにはどうすればよいのでしょうか。

"Create New Virtual Machine" の右横のドロップダウンボタンを押すと "VM-Install" という項目が出ます。
a0056607_9325351.jpg

ここからインストールすると、従来のインターフェースで仮想マシンの作成ができます。
a0056607_9331819.jpg

勿論 ISO からのインストールも Full/Para Virtual の選択もできます。
a0056607_9371691.jpg


この手順で準仮想化した SLES12 ではちゃんと XEN 用のドライバも読み込まれています。

linux-vugj:~ # cat /var/log/messages | grep xen
2014-11-07T05:57:34.348173+09:00 linux-vugj kernel: [ 0.000000] Linux version 3.12.28-4-xen (geeko@buildhost) (gcc version 4.8.3 20140627 [gcc-4_8-branch revision 212064] (SUSE Linux) ) #1 SMP Thu Sep 25 17:02:34 UTC 2014 (9879bd4)
2014-11-07T05:57:34.348331+09:00 linux-vugj kernel: [ 0.162190] xen_mem: Initialising balloon driver.
2014-11-07T05:57:34.348340+09:00 linux-vugj kernel: [ 0.162190] Switched to clocksource xen
2014-11-07T05:57:34.348445+09:00 linux-vugj kernel: [ 1.843152] xenbus_probe: Device with no driver: device/vbd/51712
2014-11-07T05:57:34.348446+09:00 linux-vugj kernel: [ 1.843153] xenbus_probe: Device with no driver: device/vbd/51728
2014-11-07T05:57:34.348447+09:00 linux-vugj kernel: [ 1.843154] xenbus_probe: Device with no driver: device/vif/0
2014-11-07T05:57:34.348454+09:00 linux-vugj kernel: [ 2.004701] xen-vbd: registered block device major 202
linux-vugj:~ #
linux-vugj:~ # uname -a
Linux linux-vugj 3.12.28-4-xen #1 SMP Thu Sep 25 17:02:34 UTC 2014 (9879bd4) x86_64 x86_64 x86_64 GNU/Linux
linux-vugj:~ #

実際に SLES12 on SLES12+XEN で仮想化してみると、SLES12 on Windows+Hyper-V より遥かに高速で、インストール時間も6割程度の時間で済みました。しかも動作自体が全く快適です。

Hyper-V の遅さ、激重さにはイライラします。Microsoft は真剣に NTFS に変わるファイルシステムを開発すべきであると実感します。
Hyper-V に手を出せない理由

もう少し解説してみました。
SUSE SLES12 の XEN仮想化管理

SLES12 の日本語導入ガイドはこちら
SUSE Linux Enterprise Server 12 導入ガイド

その他の情報は
islandcenter.jp
[PR]
# by islandcenter | 2014-11-08 09:55 | SUSE | Trackback | Comments(0)