Vmaxタイヤ前後交換
メッツラー SPORTEC M5
F:120-70/17ZR
R:160-60/17ZR
走行距離・・・・記録し忘れた。現在のトリップメーターで17kmのあたりだったはず。後で確認
114413kmだった。
前回交換が140306で101,425 kmだったので4年13,000kmほど使ったことになる。ミシュランpilotpower3案外保つな。
今度のメッツラーはどうだろう。
どうもちゃんと動いていないような気がしてならないので、いろいろテストしてみる。
$ echo "sleep 30" | qsub -l nodes=1:ppn=8
こういうふうにジョブを投げると
$ qstat -t Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 97.HostA STDIN rnaseq 0 R batch
こんなふうに走る。
このコマンドを6個くらい連打すると
$ qstat -t Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 98.HostA STDIN rnaseq 0 R batch 99.HostA STDIN rnaseq 0 R batch 100.HostA STDIN rnaseq 0 R batch 101.HostA STDIN rnaseq 0 R batch 102.HostA STDIN rnaseq 0 R batch 103.HostA STDIN rnaseq 0 Q batch
このように5ジョブがR、1ジョブがQとなった。
-l nodes=1:ppn=8
としているので1ジョブで1ノードの8CPUを専有しているため、8/16/16の3ノードで5ジョブが走ったわけだ。
つまりちゃんとジョブ管理できているね。
$ echo "sleep 30" | qsub -l nodes=2:ppn=16
こんなふうに投げると2ノードを専有するため1ジョブしか走れなくなり
$ qstat -t Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 107.HostA STDIN rnaseq 0 R batch 108.HostA STDIN rnaseq 0 Q batch
こうなる。
先日の動作試験ではHostAでしか動作しなかったのだが、スクリプトの書き方に問題があったのかもしれない。
TORQUEの場合、どうもどのノードで処理するかの指定が効かないし、実際にどのノードで走っているのかはわからないようだ。今のシステムのように計算ノードでCPUの種類や構成が違っている場合、指定ができたほうが割り振りが効率的にできそうな気もするのだが。
TORQUEのインストールは以前やった通り。3ノードがstatus: freeで認識された。
せっかくなのでmpiも入れてベンチマークなどもしてみたいのだが。
# yum install -y openmpi openmpi-devel
すべてのノードにインストール
使用するユーザ(root以外)についてPATHを足しておく。
export PATH=$PATH:/usr/lib64/openmpi/bin
インストール自体は簡単に終了したが、使い方が今ひとつわからない。
TORQUEのほうもqsubでアレイジョブを投げて見てもどうやらヘッドノードにしかジョブが割り振られない。なにかおかしいな。
使用しないときの計算ノードを止めておこうと思う。かといって計算するときにわざわざサーバルームまで行くのは面倒だし、遠隔地から作業できないし、ということでwake on LANを試してみる。
起こしたいサーバに
# yum install ethtool
とソフトウェアをいれ(今回はすでに入っていた)
# ethtool -s ens1f0 wol g
と起動
# nano /etc/sysconfig/network-scripts/ifcfg-ens1f0
ETHTOOL_OPTS="wol g"
と追記しておけばそれだけでOK
LANにつながっているポートのMACアドレスを
# ip addr
で確認して
ヘッドノードから
$ ether-wake <MACアドレス>
としてやると無事に起きてくることを確認。
さて、一旦計算ノードをシャットダウンしようとして、いっこうに電源が落ちず、やむなく強制終了してしまったのだが、どうも原因はNFSにあるようだ。NFSでマウントしたディスクをきちんとアンマウントする前にネットが切断されてしまうことでアンマウントができず、シャットダウンもできないということになっている模様。シャットダウンシーケンスで、まず確実にアンマウントされるとこを確認すればよいのだが、具体的にどうすべきかわからないので、とにかくまずrootでumount -a として一通りアンマウントしてから、shutdown -h nowすれば良さそうだ。
あと、起動時にNFSで/homeと/usr/localをマウントしているのだが、/homeだけ自動でマウントしてくれない。正しくアンマウントできなかったことにリンクしているのかもしれない。これも面倒だけど起動時に一旦rootでログインしてmount -aをやってやることで、とりあえずは問題はないのだが。
#!/bin/sh ether-wake <MACアドレス>
同様にシャットダウンスクリプトも
#!/bin/sh ssh root@<ip addr> umount -a ssh root@<ip addr> shutdown -h now
こうしとくか?
追記
起動時にNFSのマウントに失敗する
https://qa.atmarkit.co.jp/q/380
解決策1:bgオプションを入れる
解決策2:クライアントの/etc/init.d/netfsにsleep 1などwaitを入れる。
前にもやったが、記憶が曖昧になっているため、整理。
まずはphpのインストールから。
# yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum install --enablerepo=remi,remi-php70 php php-mbstring php-devel php-pdo php-gd php-mysqlnd
# nano /etc/php.ini
;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; date.timezone = "Asia/Tokyo"
[mbstring] ; language for internal character representation. ; This affects mb_send_mail() and mbstring.detect_order. ; http://php.net/mbstring.language mbstring.language = Japanese ; Use of this INI entry is deprecated, use global internal_encoding instead. ; internal/script encoding. ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) ; If empty, default_charset or internal_encoding or iconv.internal_encoding is $ ; The precedence is: default_charset < internal_encoding < iconv.internal_encod$ mbstring.internal_encoding = UTF-8 ; Use of this INI entry is deprecated, use global input_encoding instead. ; http input encoding. ; mbstring.encoding_traslation = On is needed to use this setting. ; If empty, default_charset or input_encoding or mbstring.input is used. ; The precedence is: default_charset < intput_encoding < mbsting.http_input ; http://php.net/mbstring.http-input mbstring.http_input = pass ; Use of this INI entry is deprecated, use global output_encoding instead. ; http output encoding. ; mb_output_handler must be registered as output buffer to function. ; If empty, default_charset or output_encoding or mbstring.http_output is used. ; The precedence is: default_charset < output_encoding < mbstring.http_output ; To use an output encoding conversion, mbstring's output handler must be set ; otherwise output encoding conversion cannot be performed. ; http://php.net/mbstring.http-output mbstring.http_output = pass ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation mbstring.encoding_translation = Off ; automatic encoding detection order. ; "auto" detect order is changed according to mbstring.language ; http://php.net/mbstring.detect-order mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another ; http://php.net/mbstring.substitute-character mbstring.substitute_character = none; ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ; http://php.net/mbstring.func-overload mbstring.func_overload = 0 ; enable strict encoding detection. ; Default: Off mbstring.strict_detection = Off ; This directive specifies the regex pattern of content types for which mb_outp$ ; is activated. ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) mbstring.http_output_conv_mimetype=
# systemctl restart httpd
続いてMARIADBのインストール
# yum install mariadb mariadb-server # systemctl start mariadb.service # systemctl enable mariadb.service
# nano /etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd character-set-server=utf8 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
# mysql_secure_installation
rootのパスワードを作成しておくのと、あとの質問はすべてデフォルトで(Y)
# /usr/bin/mysql -u root -p
パスは通しておいたほうが良い。起動できることを確認
最後にphpmyadminのインストール
# wget https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.zip # unzip phpMyAdmin-4.8.2-all-languages.zip # mv phpMyAdmin-4.8.2-all-languages /var/www/html/phpmyadmin # chown -R apache /var/www/html/phpmyadmin
これでIPアドレス/phpmyadminにアクセスすればOK
ディスクレスについてはまだちょっとハードルが高いので、とりあえず各サーバにRAID1でディスクを配置してシステムをインストールした。そのままではそれぞれのサーバにソフトウェアをインストールしたり使い勝手がイマイチなのでNFSでヘッドノードのディレクトリをマウントし、NISでユーザを一元管理することにした。
NISの設定方法は
https://www.server-world.info/query?os=CentOS_7&p=nis&f=1
こちらを参照。
これでようやく3台のサーバの20コア40スレッドが同じユーザの同じディレクトリで使えるようになったわけだ。
また普段、特に計算をバリバリさせていないときは2台は電源を落としておいて問題ないのでいろいろ都合が良いね。
次はTorqueのインストールだな。まあユーザーはほぼ私一人なんでジョブ管理は自分で個別にやってもいいんだけど。あっちこっちログインするのはややこしくて面倒だしな。
ヘッドノードも入ったことだし、古いサーバーはディスクレスにしてやることで安定動作&消費電力の節約を図りたい。流石に5年以上使ったSASの15krpmディスクなんていつ壊れてもおかしくないので。実際1個壊れかけていたし。
ということでヘッドノードにdhcpd, tftpd, nfsdを立ててPXEディスクレスブートを目指す。
これまでに2台のうち1台ディスクレスという構成では試していた。今回も同じように設定していって、ディスクレスブートできるところまでは確認した。しかし、2台をディスクレスにして起動させてみたところ2台が同じ領域に書き込みをすることになってどうやらまずいらしい。さて、クライアントを複数立てるにはどうしたらいいんだろうか?
http://d.hatena.ne.jp/adsaria/20080129
ここにヒントはありそうな感じ。
sudo mount.cifs //192.168.xxx.xxx/
これでマウントOK
アマゾンで超破格で12TBのTeraStationが売っていたので、怪しいと思いつつも導入してみた。ラックマウントの4HDDのNASで、HDD無しで売っている某メーカーの価格くらいで3TBx4ついてきた感じ。
早速設定をしてNFSでマウントしてみると、どうも挙動がおかしい。コピーをしようとすると必ずエラーが出て、もう一度同じファイルをコピーすると、上書きするか?といちいち聞かれてからコピーが始まるが、一応ちゃんと書き込める。
設定がなんかおかしいんだろうな〜と見ていて、これが怪しいと思った設定がNFS>情報>サービスにある
動作モード:ユーザーモード
ゲストパーミッション:強制適用する
これをそれぞれカーネルモード、適用しないに変えたところ、不具合なくコピーできるようになったとさ。
速度もUSB3のHDDをサーバに接続して、1000Baseで接続しておよそ50MB/secくらいなのでまあそんなもんでしょう。400Mbps?