A pythonic library to parse /proc/mdstat file
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
pymdstat
tests
.gitignore
.travis.yml
AUTHORS
LICENSE
MANIFEST.in
NEWS
README.rst
pylint.cfg
setup.py
tox.ini
uninstall.sh
unitest.py

README.rst

PyMDstat

https://scrutinizer-ci.com/g/nicolargo/pymdstat/badges/build.png?b=master https://scrutinizer-ci.com/g/nicolargo/pymdstat/badges/quality-score.png?b=master Latest Version

A pythonic library to parse Linux /proc/mdstat file.

>>> from pymdstat import MdStat

>>> mds = MdStat() # Read the /proc/mdstat file

>>> mds
Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdb2[1] sda2[0]
      136448 blocks [2/2] [UU]

md2 : active raid1 sdb3[1] sda3[0]
      129596288 blocks [2/2] [UU]

md3 : active raid5 sdl1[9] sdk1[8] sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
      1318680576 blocks level 5, 1024k chunk, algorithm 2 [10/10] [UUUUUUUUUU]

md0 : active raid1 sdb1[1] sda1[0]
      16787776 blocks [2/2] [UU]

unused devices: <none>

>>> mds.get_stats()
{'arrays': {'md0': {'available': '2',
   'components': {'sda1': '0', 'sdb1': '1'},
   'config': 'UU',
   'status': 'active',
   'type': 'raid1',
   'used': '2'},
  'md1': {'available': '2',
   'components': {'sda2': '0', 'sdb2': '1'},
   'config': 'UU',
   'status': 'active',
   'type': 'raid1',
   'used': '2'},
  'md2': {'available': '2',
   'components': {'sda3': '0', 'sdb3': '1'},
   'config': 'UU',
   'status': 'active',
   'type': 'raid1',
   'used': '2'},
  'md3': {'available': '10',
   'components': {'sdc1': '0',
    'sdd1': '1',
    'sde1': '2',
    'sdf1': '3',
    'sdg1': '4',
    'sdh1': '5',
    'sdi1': '6',
    'sdj1': '7',
    'sdk1': '8',
    'sdl1': '9'},
   'config': 'UUUUUUUUUU',
   'status': 'active',
   'type': 'raid5',
   'used': '10'}},
 'personalities': ['raid1', 'raid6', 'raid5', 'raid4']}

>>> mds.personalities()
['raid1', 'raid6', 'raid5', 'raid4']

>>> mds.arrays()
['md2', 'md3', 'md0', 'md1']

>>> mds.type('md3')
'raid6'

>>> mds.status('md3')
'active'

>>> mds.components('md3')
['sdk1', 'sdj1', 'sde1', 'sdl1', 'sdg1', 'sdf1', 'sdh1', 'sdc1', 'sdd1', 'sdi1']

>>> mds.available('md3')
10

>>> mds.used('md3')
10

>>> mds.config('md3')
'UUUUUUUUUU'