RAID

Linux ソフトウェアRAID 監視 メール通知

優 RAID

れいど RAID

今回はLinuxサーバ本体のソフトウェアRAIDを監視して、異常検知時にメールでお知らせする設定のチップスです。

 

現状の確認を行います。

dell precision t3500 raid設定

デバイスの確認を行います。

# ls /dev/sd*

/dev/sda /dev/sda2 /dev/sdb /dev/sdb2 /dev/sdc /dev/sdc2 /dev/sdd /dev/sdd2
/dev/sda1 /dev/sda3 /dev/sdb1 /dev/sdb3 /dev/sdc1 /dev/sdc3 /dev/sdd1 /dev/sdd3

 

# fdisk -l

警告: GPT (GUID パーティションテーブル) が '/dev/sda' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。


ディスク /dev/sda: 3000.6 GB, 3000592982016 バイト
ヘッド 255, セクタ 63, シリンダ 364801
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x00000000

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 1 267350 2147483647+ ee GPT
Partition 1 does not start on physical sector boundary.

警告: GPT (GUID パーティションテーブル) が '/dev/sdb' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。


ディスク /dev/sdb: 3000.6 GB, 3000592982016 バイト
ヘッド 255, セクタ 63, シリンダ 364801
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x00000000

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 1 267350 2147483647+ ee GPT
Partition 1 does not start on physical sector boundary.

警告: GPT (GUID パーティションテーブル) が '/dev/sdc' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。


ディスク /dev/sdc: 3000.6 GB, 3000592982016 バイト
ヘッド 255, セクタ 63, シリンダ 364801
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x00000000

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 1 267350 2147483647+ ee GPT
Partition 1 does not start on physical sector boundary.

警告: GPT (GUID パーティションテーブル) が '/dev/sdd' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。


ディスク /dev/sdd: 3000.6 GB, 3000592982016 バイト
ヘッド 255, セクタ 63, シリンダ 364801
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x00000000

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdd1 1 267350 2147483647+ ee GPT
Partition 1 does not start on physical sector boundary.

ディスク /dev/md1: 12.6 GB, 12573474816 バイト
ヘッド 2, セクタ 4, シリンダ 3069696
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
ディスク識別子: 0x00000000


ディスク /dev/md2: 5987.9 GB, 5987911073792 バイト
ヘッド 2, セクタ 4, シリンダ 1461892352
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
ディスク識別子: 0x00000000


ディスク /dev/mapper/VolGroup-LogVol00: 5987.9 GB, 5987910025216 バイト
ヘッド 255, セクタ 63, シリンダ 727988
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
ディスク識別子: 0x00000000


ディスク /dev/md0: 209 MB, 209649664 バイト
ヘッド 2, セクタ 4, シリンダ 51184
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x00000000

 

RAID状況の確認を行います。

# cat /proc/mdstat

Personalities : [raid10] [raid1]
md0 : active raid1 sda2[0] sdd2[3] sdc2[2] sdb2[1]
204736 blocks super 1.0 [4/4] [UUUU]

md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
5847569408 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/44 pages [0KB], 65536KB chunk

md1 : active raid10 sdd1[3] sdc1[2] sda1[0] sdb1[1]
12278784 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

 

詳細確認を行います。

# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Sun Nov 13 04:25:08 2016
Raid Level : raid1
Array Size : 204736 (199.97 MiB 209.65 MB)
Used Dev Size : 204736 (199.97 MiB 209.65 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Mon Apr 10 18:37:37 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Name : localhost.localdomain:0
UUID : ede21cfe:23ab6795:2d3097de:d3e5bc01
Events : 94

Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
2 8 34 2 active sync /dev/sdc2
3 8 50 3 active sync /dev/sdd2
# mdadm --detail /dev/md1

/dev/md1:
Version : 1.1
Creation Time : Sun Nov 13 03:38:27 2016
Raid Level : raid10
Array Size : 12278784 (11.71 GiB 12.57 GB)
Used Dev Size : 6139392 (5.85 GiB 6.29 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Mon Apr 10 18:37:36 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : near=2
Chunk Size : 512K

Name : localhost.localdomain:1
UUID : 26467776:2ddd4345:8dbf0440:4cdf661e
Events : 73

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
# mdadm --detail /dev/md2

/dev/md2:
Version : 1.1
Creation Time : Sun Nov 13 04:25:01 2016
Raid Level : raid10
Array Size : 5847569408 (5576.68 GiB 5987.91 GB)
Used Dev Size : 2923784704 (2788.34 GiB 2993.96 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Mon Apr 10 19:05:41 2017
State : active
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : near=2
Chunk Size : 512K

Name : localhost.localdomain:2
UUID : 2639204a:74201894:72c9e310:a9182dcb
Events : 60684

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 19 1 active sync /dev/sdb3
2 8 35 2 active sync /dev/sdc3
3 8 51 3 active sync /dev/sdd3

 

# mdadm --detail --scan

ARRAY /dev/md1 metadata=1.1 name=localhost.localdomain:1 UUID=26467776:2ddd4345:8dbf0440:4cdf661e
ARRAY /dev/md2 metadata=1.1 name=localhost.localdomain:2 UUID=2639204a:74201894:72c9e310:a9182dcb
ARRAY /dev/md0 metadata=1.0 name=localhost.localdomain:0 UUID=ede21cfe:23ab6795:2d3097de:d3e5bc01

 

きちんと設定されているか確認します。

# cat /etc/mdadm.conf

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md0 level=raid1 num-devices=4 UUID=ede21cfe:23ab6795:2d3097de:d3e5bc01
ARRAY /dev/md1 level=raid10 num-devices=4 UUID=26467776:2ddd4345:8dbf0440:4cdf661e
ARRAY /dev/md2 level=raid10 num-devices=4 UUID=2639204a:74201894:72c9e310:a9182dcb

 

元設定ファイルコピーしてバックアップを行います。

# cp -p /etc/mdadm.conf /etc/mdadm.conf.org

 

# vi /etc/mdadm.conf


MAILADDR root

↓変更

#MAILADDR root
MAILADDR foobar@example.com

 

# /etc/rc.d/init.d/mdmonitor status
mdmonitor (pid 1228) を実行中...

 

テストメール送信

# mdadm --monitor --test --oneshot --scan


This is an automatically generated mail message from mdadm
running on backup2.localdomain

A TestMessage event had been detected on md device /dev/md1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid10] [raid1] 
md0 : active raid1 sda2[0] sdd2[3] sdc2[2] sdb2[1]
204736 blocks super 1.0 [4/4] [UUUU]

md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
5847569408 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 5/44 pages [20KB], 65536KB chunk

md1 : active raid10 sdd1[3] sdc1[2] sda1[0] sdb1[1]
12278784 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

メールが届けばOK。

プロバイダの規制の関係で届かない場合は、外部のメールサーバを使うなどして、メール送信が出来るようにしましょう。

 

モニタリング設定

 

正常かどうか監視する

# /sbin/mdadm --monitor --scan -1

 

Cron設定

# vi /etc/crontab

※以下を追加する

#=====================================================
# RAID異常監視 RAID10
#=====================================================
0 0 * * * root /sbin/mdadm --monitor --scan -1
#=====================================================

 

再起動させて反映させます。

# service crond restart

 

これで本体のソフトウェアRAIDの監視を行い、エラーが出たらメールが届きます。

他にMuninなどの外部の監視サーバからRAIDを2重で監視すると良いかと思います。2重以上の構成で対応すると1つのミドルウェアでは見逃していたデータの差異や発見があったりします。

RAID
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG