Tegyük fel, hogy van egy önálló Dell szerverünk, amelyben található egy hardveres RAID (DELL PERC). A linuxos rendszerek általában csak a hozzájuk közvetlenül csatlakoztatott háttértárolókat tudják lekezelni, és ennek következtében az állapotadatokat sem tudják lekérni olyan könnyen, ha virtuális lemezekkel kell dolgozni.
Például az alábbi eredményt kaphatjuk a smartctl használatakor:
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-130-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: Dell
Product: VIRTUAL DISK
Revision: 1028
User Capacity: 146,163,105,792 bytes [146 GB]
Logical block size: 512 bytes
Logical Unit id: 0x600508e0000000005ac5256080931c09
Device type: disk
Local Time is: Sun Jan 31 14:44:49 2021 CET
SMART support is: Unavailable - device lacks SMART capability.
=== START OF READ SMART DATA SECTION ===
Current Drive Temperature: 0 C
Drive Trip Temperature: 0 C
Error Counter logging not supported
Device does not support Self Test logging
Ilyenkor jól jöhet a Dell OpenManage megoldása, ám könnyen előfordulhat, hogy nem támogatott az általunk használt hardver, vagy éppen csak egy egyszerűbb megoldást szeretnénk igénybevenni.
Amennyiben LSI-vezérlőről van szó, a problémát könnyedén áthidalhatjuk az mpt-status használatával.
Először is győződjünk meg arról, hogy a RAID-vezérlőnk az LSI technológiájára épül:
sudo lspci | grep SAS
Ha az eredmény ehhez hasonló, akkor érdemes folytatnunk az alábbi lépésekkel:
01:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08)
Elsőként is telepítsük a szükséges csomagot:
sudo apt-get update -y sudo apt-get install -y mpt-status
Majd pedig futtassuk az alábbi parancsot:
sudo mpt-status
Ha a válasz az alábbihoz hasonló, akkor már látjuk is a RAID és az egyes virtuális lemezek állapotát:
ioc0 vol_id 0 type IM, 2 phy, 136 GB, state OPTIMAL, flags ENABLED
ioc0 phy 0 scsi_id 9 SEAGATE ST3146855SS S528, 136 GB, state ONLINE, flags NONE
ioc0 phy 1 scsi_id 1 SEAGATE ST3146855SS S528, 136 GB, state ONLINE, flags NONE
Most már nincs más hátra, mint létrehozni egy egyszerű szkriptet, amelyik figyeli a RAID állapotát, és értesítést küld (az alábbi példában e-mailben és Pushover-üzenetben), ha valami nem stimmel:
sudo nano /usr/sbin/checkmpt
Majd írjuk be az alábbi kódot (természetesen a saját e-mail-címünket és Pushover-adatainkat használva):
#!/usr/bin/perl
# With credit to :
# => check_mpt.pl Copyright (C) 2006 Claudio Messineo
$mpt_path="/usr/sbin/mpt-status";
$num_raid=2;
$enabled=1;
$sendto="admin";
$sendfrom="admin";
`/sbin/modprobe mptctl`;
sleep 1;
if ( ! open( MPT_STAT, " $mpt_path | " ) ) {
print "ERROR: could not open $mpt_path\n";
exit 1;
} else {
while () {
if ( $_ =~ m/ENABLED/ ) {
# print "$_";
$enabled--;
}
if ( $_ =~ m/ONLINE/ ) {
# print "$_";
$num_raid--;
}
next;
}
my $hostname=`/bin/hostname -f 2>&1`;
chomp($hostname);
if (($num_raid==0) and ($enabled==0)) {
#sendEmail( $sendto, $sendfrom, "$hostname Mpt-status OK", "$results" );
#print "$hostname Mpt-status OK\n";
exit 0;
} else {
sendEmail( $sendto, $sendfrom, "$hostname Mpt-status Alert", "$results" );
print "$hostname Mpt-status Alert\n";
use LWP::UserAgent;
LWP::UserAgent->new()->post(
"https://api.pushover.net/1/messages.json", [
"token" => "user key",
"user" => "app token",
"message" => "$hostname Mpt-status Alert",
]);
exit 1;
}
}
# Simple Email Function
# ($to, $from, $subject, $message)
sub sendEmail {
my ($to, $from, $subject, $message) = @_;
my $sendmail = '/usr/sbin/sendmail';
open(MAIL, "|$sendmail -f $from -oi -t");
print MAIL "From: $from\n";
print MAIL "To: $to\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$message\n";
close(MAIL);
}
Végül pedig tegyük futtathatóvá:
sudo chmod 755 /usr/sbin/checkmpt
Ha pedig szeretnénk rendszeresen futtatni az ellenőrzést, akkor egy crontab-bejegyzést kell létrehoznunk:
sudo nano /etc/crontab
És beírnunk az alábbi sort (a saját ütemezésünk szerint módosítva):
# mpt-status
00 3 * * 7 root /usr/sbin/checkmpt
Chilly 1997 óta foglalkozik webhelyek üzemeltetésével és programozással, valamint különböző kütyük kipróbálásával, és azóta folyamatosan nyomon követi a technikai újításokat. Elsődlegesen Linux-rendszerekkel dolgozik, de az évek során rengeteg tapasztalatra tett szert a Windows-gépek üzemeltetése terén is, hobbiszinten pedig az utóbbi időben egyre több időt tölt a Raspberry Pi módosítgatásával.
Mesterfokon beszél angolul, és műszaki szakfordítói vizsgával rendelkezik. Korábban sokáig újságíróként dolgozott nyomtatott és online magazinoknál.
Legutóbbi hozzászólások