ESXIでストレージをオンラインで追加

ESXIで稼働中VMのHDDの容量が足りなくなってきたのでオンラインでHDDの追加を受けてやってみた。
OSはCentOS6.5です。
ESXI上でのやり方は普段通りハードウェアの追加で適当なサイズの仮想ディスクをマウント

ESXIhdd追加
ESXIhdd追加

このままOSが認識してくれると思っていたら認識してくれないので方法が無いか調べてみた
こんな感じで出来る様だ・・・

やってみた。
現状確認

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05

追加したHDDが認識されてません
増設した仮想ディスクは「SCSI(0:1)」なので「Channel: 00 Id: 01」という事なので
以下の様にコマンド実行

# echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi

確認

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02

更に確認

# ls -al /dev/sd
sda sda1 sda2 sdb

デバイスsdbが追加されてるのでオンラインでディスク増設成功です。
この後は、fdiskしてLVMを行えばHDDを拡張できました。

自宅サーバーにHDDをRAID1で追加した。

物理的な経緯はこちらに書きました。

HDD2本を既存の自宅サーバーにRAID1で追加した手順のメモです。

現在のRAID情報

# cat /proc/mdstat
Personalities : [raid1]
md125 : active raid1 sda3[0] sdb3[1]
1950821184 blocks super 1.2 [2/2] [UU]
bitmap: 8/15 pages [32KB], 65536KB chunk

md126 : active raid1 sda1[0] sdb1[1]
2047936 blocks super 1.2 [2/2] [UU]

md127 : active raid1 sda2[0] sdb2[1]
511936 blocks super 1.0 [2/2] [UU]

unused devices:

RAID1で組まれています。

HDD追加前に現在の情報をメモっておきます。

# cat /etc/fstab
# fdisk -l

〇物理的に増設が終わったらHWが認識されているか確認します。

# fdisk -l

Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes, 5860533168 sectors  ←認識された
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト

Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes, 5860533168 sectors  ←認識された
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト

デバイスが
/dev/sdc
/dev/sdd
として認識されてますね。

次にRAIDを組みます。

parted --script /dev/sdd "mklabel gpt"
parted --script /dev/sdc "mklabel gpt"
parted --script /dev/sdd "mkpart primary 0% 100%"
parted --script /dev/sdc "mkpart primary 0% 100%"
parted --script /dev/sdd "set 1 raid on"
parted --script /dev/sdc "set 1 raid on"
mdadm --create /dev/md128 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1

RAID構築の進捗を確認します。

# cat /proc/mdstat
Personalities : [raid1]
md128 : active raid1 sdd1[1] sdc1[0]
2930134016 blocks super 1.2 [2/2] [UU]
[=====>...............] resync = 26.6% (781301248/2930134016) finish=202.8min speed=176538K/sec
bitmap: 17/22 pages [68KB], 65536KB chunk

md125 : active raid1 sda2[0] sdb2[1]
511936 blocks super 1.0 [2/2] [UU]

md126 : active raid1 sda1[0] sdb1[1]
2047936 blocks super 1.2 [2/2] [UU]

md127 : active raid1 sda3[0] sdb3[1]
1950821184 blocks super 1.2 [2/2] [UU]
bitmap: 7/15 pages [28KB], 65536KB chunk

unused devices:

3TBのHDDなのでSYNCが終わるのに4時間くらいかかったと思います。

次にmkfsでファイルシステムを作ります。

mkfs -t xfs /dev/md128

OS起動時mountされるようfstabに書く為に必要なUUIDを調べます。

# ls -l /dev/disk/by-uuid/
合計 0
lrwxrwxrwx 1 root root 11 9月 17 19:49 5c143634-3073-4a8e-850b-1e3f6fe0b4da -> ../../md126
lrwxrwxrwx 1 root root 11 9月 17 22:46 5f3d0256-a541-4adc-8f98-7a4c17e1cd5d -> ../../md128
lrwxrwxrwx 1 root root 11 9月 17 19:49 c3bda334-bc05-49c9-a03a-94f05702bae2 -> ../../md125
lrwxrwxrwx 1 root root 11 9月 17 19:49 d91be4e5-a4f2-46d3-9390-6a2040e5a07b -> ../../md127

mount先を作ります。

# mkdir /data

調べたUUIDとmountポイント、ファイルシステムを今回はXFSに指定して
fstabに記載します。

# vim /etc/fstab
UUID=5f3d0256-a541-4adc-8f98-7a4c17e1cd5d /data xfs defaults 1 2

あとは、

# mount -a

や再起動してmountされているのを確認して終了

# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/md127 1.8T 1.1T 628G 64% /
devtmpfs 7.7G 0 7.7G 0% /dev
tmpfs 7.7G 92K 7.7G 1% /dev/shm
tmpfs 7.7G 9.2M 7.7G 1% /run
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/md125 477M 347M 101M 78% /boot
tmpfs 1.6G 12K 1.6G 1% /run/user/1000
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/md128 2.8T 33M 2.8T 1% /data     ←mountされてます。

自宅サーバーのHDDを増設した。

自宅サーバーをファイルサーバーにしてるんですが、2TBのHDDをRAID1で構成してましたが
構築して4,5年たってHDDの残容量が心もとなくなってきました。
NASを買うか?と迷いましたが、自宅サーバーを止めるのもなんだなーと思い
HDDを増設する選択をしました。

購入したHDDは値段が安いバルクのTOSHIBA MD04ACA300

TOSHIBA MD04ACA300 3TB
TOSHIBA MD04ACA300 3TB

とりあえず自宅サーバーの空いている3.5インチベイに突っ込んでみました・・・。
HDD4本隙間なく詰められて明らかに熱がやばそうな感じです。

hdd4本搭載
hdd4本搭載

とりあえず設置が終わりRAID1で組んで起動してみると・・・。
RAIDのSYNC中みるみる温度が上がっていきます・・・

HDD温度
HDD温度

急激に下がっている箇所は、慌ててケースを開けて扇風機を当てました。
その後上がっているのは、いったい何度までHDDの温度が上がるのか見たみたくなり
扇風機を止めて放置した所、結果67度を記録しました。
ケースを開けていたのと気温も下がって来ていたので真夏だったらどうなっていたことやら・・・

しかし、このままだと既存のHDDもろ共ぶっ飛ぶことは明白です。
そこで、空いている5インチベイに2本搭載する事にしました。

3.5インチHDDを5インチベイにマウントする為には器具が必要です。
そこで購入したのが

3.5インチ→5.25インチ変換ブラケット
3.5インチ→5.25インチ変換ブラケット

3.5インチ→5.25インチ変換ブラケット
3.5インチ→5.25インチ変換ブラケット

ついでに電源ケーブルの長さが足りないので
HDD用電源4分岐ケーブルも買いました。

ブラケットをかませるとこんな感じになります。

HDD 5インチブラケット装着
HDD 5インチブラケット装着

そうして5インチベイに搭載

ブラケットをつけて5インチベイにHDD搭載
ブラケットをつけて5インチベイにHDD搭載

常時起動をさせて見た所、温度もさがりました。
以前より下がっているのはサーバー内の掃除をしてきれいになったからでしょうね。

HDD温度改善後
HDD温度改善後

これで、一先ずHDDの容量もUPして温度も安定したので安心です。

postfixでメールリレー設定をした。

postfixでメールリレー設定を行い中継サーバーにしたメモ

設定は簡単
〇転送元サーバーwww2で設定

[root@www2 postfix]# pwd
/etc/postfix
[root@www2 postfix]# vim main.cf
以下の個所を追記
※192.168.10.30が転送先サーバーのIP
relayhost = [192.168.10.30]:25

設定が終わったら

# systemctl restart postfix

次に
〇転送先サーバーwwwで設定

[root@www postfix]# pwd
/etc/postfix
[root@www postfix]# vim main.cf
以下の個所を追記
inet_interfaces = all

他にもipv6なんて使わないからipv4のみ

#inet_protocols = all
inet_protocols = ipv4

終わったらpostfix再起動

# systemctl restart postfix

メールをテスト送信して転送先サーバーのログに

Relay access denied~

と出ていて転送出来なかったら
転送元のネットワークやらを確認してmain.cfに以下のように設定するといけるかも

mynetworks = 127.0.0.1, 192.168.5.0/24

完全クローズ環境でやったんでセキュリティなどは無視してます。
以上メモでした。

centos7 apacheで/tmpフォルダに書き込めない

centos7ではPrivateTmpという機能が有りServiceが/tmpには通常書き込めません

apacheで書き込めるようにするには
以下の項目を変更することで/tmpに書き込めるようになります。

# vim /lib/systemd/system/httpd.service
#PrivateTmp=true
PrivateTmp=false

trueをfalseに変更

daemonを読み直して

systemctl daemon-reload

apacheを再起動すると

systemctl restart httpd

/tmpに書込める様になりました。

centos7にDELL OpenManageをインストールしたが値が取得できなかった。

centos6でのDell openmanageのインストールはこちらでやりました。
今回はcentos7で Dell openmanageを新型サーバーに入れてはまりました。

インストール方法自体はcentos6の時と変わりませんので同様に進めます。

# /opt/dell/srvadmin/sbin/srvadmin-services.sh start

を実施し確認
omreportコマンドを叩くと

# omreport chassis
Health

For further help, type the command followed by -?

何も出ない・・・
サービスのstatusを確認すると

# /opt/dell/srvadmin/sbin/srvadmin-services.sh status
dell_rbu (module) is running
ipmi driver is running
dsm_sa_datamgrd is stopped ←サービスが上がらない
dsm_sa_eventmgrd (pid 24115) is running
dsm_sa_snmpd (pid 24136) is running
● dsm_om_shrsvc.service - LSB: DSM OM Shared Services
Loaded: loaded (/etc/rc.d/init.d/dsm_om_shrsvc)
Active: active (running) since Wed 2016-08-17 09:24:42 JST; 7min ago
Docs: man:systemd-sysv-generator(8)
Process: 23683 ExecStop=/etc/rc.d/init.d/dsm_om_shrsvc stop (code=exited, s tatus=0/SUCCESS)
Process: 24160 ExecStart=/etc/rc.d/init.d/dsm_om_shrsvc start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/dsm_om_shrsvc.service
mq24185 /opt/dell/srvadmin/sbin/dsm_om_shrsvcd

Aug 17 09:24:42 hogehoge systemd[1]: Starting LSB: DSM OM Shared Servic....
Aug 17 09:24:42 hogehoge dsm_om_shrsvc[24160]: [47B blob data]
Aug 17 09:24:42 hogehoge systemd[1]: Started LSB: DSM OM Shared Services.
Aug 17 09:24:42 hogehoge dsm_om_shrsvc[24160]: tput: No value for $TERM ...
Aug 17 09:29:37 hogehoge systemd[1]: Started LSB: DSM OM Shared Services.
Aug 17 09:29:48 hogehoge systemd[1]: Started LSB: DSM OM Shared Services.
Hint: Some lines were ellipsized, use -l to show in full.
● dsm_om_connsvc.service - LSB: DSM OM Connection Service
Loaded: loaded (/etc/rc.d/init.d/dsm_om_connsvc)
Active: active (running) since 水 2016-08-17 09:24:42 JST; 7min ago
Docs: man:systemd-sysv-generator(8)
Process: 23724 ExecStop=/etc/rc.d/init.d/dsm_om_connsvc stop (code=exited, status=0/SUCCESS)
Process: 24229 ExecStart=/etc/rc.d/init.d/dsm_om_connsvc start (code=exited , status=0/SUCCESS)
CGroup: /system.slice/dsm_om_connsvc.service
tq24258 /opt/dell/srvadmin/sbin/dsm_om_connsvcd -run
mq24259 /opt/dell/srvadmin/sbin/dsm_om_connsvcd -run

8月 17 09:24:42 hogehoge systemd[1]: Starting LSB: DSM OM Connection ....
8月 17 09:24:42 hogehoge dsm_om_connsvc[24229]: [50B blob data]
8月 17 09:24:42 hogehoge systemd[1]: Started LSB: DSM OM Connection S....
8月 17 09:29:37 hogehoge systemd[1]: Started LSB: DSM OM Connection S....
8月 17 09:29:48 hogehoge systemd[1]: Started LSB: DSM OM Connection S....
Hint: Some lines were ellipsized, use -l to show in full.

/var/log/messegesを確認すると

Aug 17 09:24:41 hogehoge kernel: dsm_sa_datamgrd[24089]: segfault at 7fb1f83a0388 ip 00007fb1f52f7591 sp 00007ffdd98f3bd0 error 4 in ld-2.17.so[7fb1f
52ee000+21000]
Aug 17 09:24:41 hogehoge dataeng: Starting dsm_sa_datamgrd: [失敗]

installされたパッケージを疑う
cent7ではこれしか入ってない

# rpm -qa | grep snmp*
net-snmp-libs-5.7.2-24.el7_2.1.x86_64
net-snmp-utils-5.7.2-24.el7_2.1.x86_64

redhat linux 7.2では

srvadmin-isvc-snmp-8.3.0-1908.9058.el7.x86_64
srvadmin-deng-snmp-8.3.0-1908.9058.el7.x86_64
srvadmin-storage-snmp-8.3.0-1908.9058.el7.x86_64
net-snmp-utils-5.7.2-24.el7_2.1.x86_64
srvadmin-storageservices-snmp-8.3.0-1908.9058.el7.x86_64
net-snmp-libs-5.7.2-24.el7_2.1.x86_64
srvadmin-idrac-snmp-8.3.0-1908.9058.el7.x86_64
srvadmin-server-snmp-8.3.0-1908.9058.el7.x86_64

取り敢えず差分をインストール見ても状況は変わらず

設定ファイルをさがす
stsvc.iniってのがそうみたい

# pwd
/opt/dell/srvadmin/etc/srvadmin-storage
# vim stsvc.ini
vil7=dsm_sm_psrvil
; vil7=dsm_sm_psrvil

上の個所を修正して

open manage 再起動

# /opt/dell/srvadmin/sbin/srvadmin-services.sh start

値を取れるようになりました。

# omreport chassis
Health

Main System Chassis

SEVERITY : COMPONENT
Ok : Fans
Ok : Intrusion
Ok : Memory
Ok : Power Supplies
Ok : Power Management
Ok : Processors
Ok : Temperatures
Ok : Voltages
Ok : Hardware Log
Ok : Batteries

For further help, type the command followed by -?

GUIでも値が取れる様になりました。
よかった。

mysqltunerをつかってmariadbをチューニングしてみた。

VPSサーバをリプレースしたのでmysqltunerをつかってmariadbをチューニングしたのでメモ。

epelからyumでinstallできます。
バージョンは古いですが管理が楽なので気にしません。

# yum install mysqltuner

実行は簡単
↓の様に叩いてユーザーとパスをいれます。

# mysqltuner --buffers

ずらずらーっと出てきますがチューニングした方がいいよって
指摘は一番最後のRecommendationsって所にこんな感じで出力されます。

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries which have no LIMIT clause
Set thread_cache_size to 4 as a starting value
Variables to adjust:
query_cache_size (>= 8M)
tmp_table_size (> 16M)
max_heap_table_size (> 16M)
thread_cache_size (start at 4)

以下の様に出てるのでテーブルリペアをかけます。

Run OPTIMIZE TABLE to defragment tables for better performance

# mysqlcheck -u root -p --auto-repair --optimize --all-databases

Variables to adjust:の項目で指摘された項目をmy.cnfに当て込みます。
自分の環境では以下で落ち着きました。

# vim /etc/my.cnf

[mysqld]
query_cache_size = 8M
tmp_table_size = 16M
max_heap_table_size = 16M
thread_cache_size = 4
query_cache_limit = 2M

チューニングを施してDB再起動をしてると最終的に以下のメッセージになりました。

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce or eliminate unclosed connections and network issues
Variables to adjust:
query_cache_limit (> 4M, or use smaller result sets)

以下のメッセージはmariadb起動から時間がたってないので正確じゃーないよって
いってます、訳せばそのまんま

MySQL started within last 24 hours - recommendations may be inaccurate

query_cache_limitについては、アクセス状況とかサーバーの負荷と相談なので様子見ですね。
とりあえず環境が改善されるといいですね。