Состояние RAID монитора через терминал (CentOS 5)

Xmarks, причина, кто хочет поддержать локальное только копия их закладок Firefox. Xmarks будет синхронизировать Ваши закладки через Firefox, IE и т.д. на всех Ваших компьютерах. Это быстро и остается вне пути.

2
задан 16 June 2009 в 23:32
6 ответов

При использовании программного обеспечения RAID с обычным дисковым контроллером, затем используйте:

mdadm --detail <dev>

где/dev/md0, например. Это покажет Вам текущий статус. Если диск перестанет работать, то Вы будете также видеть большую злобность в/var/log/messages.

6
ответ дан 3 December 2019 в 08:31

это - зависимый набега. для lsi [это находится в большом количестве серверов Dell и серверов HP], Вы используете инструмент под названием MegaCLI.

для 3ware карты - tw_cli

это обычно идет с 'драйверами' или документацией для Ваших аппаратных средств.

5
ответ дан 3 December 2019 в 08:31

Если это - набег программного обеспечения (mdadm), и Вы хотите посмотреть на текущий статус, Вы могли бы просто сделать кошку/proc/mdstat. Если Вы хотите иметь что-то, где экран обновляется каждые 10 секунд, Вы могли сделать кошку-n 10 часы/proc/mdstat.

4
ответ дан 3 December 2019 в 08:31

Dell, вероятно, обеспечивает инструмент для контроля его, но я могу рисковать предположением, что он будет чрезмерно увеличен в размере и реализован с Java, как большинство тусклых утилит OEM.

Достаточно к счастью, кажется, что SC1435 поддерживается замечательной утилитой mpt-состояния. Просто удостоверьтесь, что Вам включили следующие опции в Вашем ядре:

CONFIG_FUSION=y
CONFIG_FUSION_SAS=y
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=y

Можно затем использовать mpt-состояние от CLI для просмотра здоровья RAID-массива.

Я лично затем использую простой сценарий Python, названный от крона, который периодически проверяет состояние и выпускает нас предупреждения по электронной почте. Подобным способом к тому, как mdadm ведет себя. Можно, конечно, указать, как часто Вы хотите проверить. Не стесняйтесь использовать его сами:

#!/usr/bin/env python

# Copyright (c) 2009 Dan Carley <dan.carley@gmail.com>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

"""
Report failures from hardware RAID controllers.

Requires the supporting utilities:
    mpt-status(8)   for MPT controllers.
    tw_cli(8)       for 3ware controllers.

Intended to be scheduled from crontab as follows:
    MAILTO="alert@your.domain"
    0   */3 *   *   *   /usr/local/sbin/hwraid_monitor.py options
"""

from re import search
from sys import exit
from os.path import isfile
from optparse import OptionParser
from subprocess import Popen, PIPE

def check_controller(type):
    ret = True

    if type == 'mpt':
        cmd = [ '/usr/sbin/mpt-status', '-s' ]
        array = {'regex': '^log_id$',
                 'pos': 2,
                 'string': 'OPTIMAL'}
        drive = {'regex': '^phys_id$',
                 'pos': 2,
                 'string': 'ONLINE'}
    elif type == 'tw':
        cmd = [ '/sbin/tw_cli', 'info' ]
        contr = {'regex': '^c\d+$'}
        array = {'regex': '^u\d+$',
                 'pos': 2,
                 'string': 'OK'}
        drive = {'regex': '^p\d+$',
                 'pos': 1,
                 'string': 'OK'}

    if not isfile(cmd[0]):
        print "%s: Utility not found" % cmd[0]
        return False

    if type == 'tw':
        controllers = []
        p = Popen(cmd, stdout=PIPE)
        o, e = p.communicate()
        if e:
            print e
        for c in o.split('\n'):
            c = c.split()
            if len(c) > 2 and search(contr['regex'], c[0]):
                controllers.append(c[0])
    elif type == 'mpt':
        controllers = ['']

    for c in controllers:
        p = Popen(cmd + [c], stdout=PIPE)
        o, e = p.communicate()
        if e:
            print e.split('\n')
        for v in o.split('\n'):
            v = v.split()
            if len(v) > 2:
                # Array check.
                if search(array['regex'], v[0]) and v[array['pos']] != array['string']:
                    print "Array failure: \n\t%s" % '\t'.join(v)
                    ret = False
                # Drive check.
                if search(drive['regex'], v[0]) and v[drive['pos']] != drive['string']:
                    print "Drive failure: \n\t%s" % '\t'.join(v)
                    ret = False

    return ret

def main():
    usage = "usage: %prog options"
    parser = OptionParser(usage=usage)
    parser.add_option("--mpt", action="store_true", default=False,
                      dest="mpt", help="MPT controller support.")
    parser.add_option("--tw", action="store_true", default=False,
                      dest="tw", help="3ware controller support.")
    (options, args) = parser.parse_args()

    if not options.mpt and not options.tw:
        parser.print_help()
        exit(2)

    fail = False

    if options.mpt:
        if not check_controller('mpt'):
            fail = True

    if options.tw:
        if not check_controller('tw'):
            fail = True

    if fail:
        exit(1)

if __name__ == "__main__":
    main()
3
ответ дан 3 December 2019 в 08:31

mdadm предлагает подробную информацию о каждом аспекте набега программного обеспечения Linux.

0
ответ дан 3 December 2019 в 08:31

наблюдайте за кошкой-n 10/proc/mdstat, это установит на u r систему

0
ответ дан 3 December 2019 в 08:31

Теги

Похожие вопросы