Программа направлена на реализацию модуля ядра под ОС linux, который создаёт виртуальные блочные устройства поверх существующего на базе device mapper и следит за статистикой выполняемых операций на устройстве.
-
Количество запросов на запись
-
Количество запросов на чтение
-
Средний размер блока на запись
-
Средний размер блока на чтение
-
Общее количество запросов
-
Средний размер блока
-
linux-headers(версия зависит от устройства) -
gcc,make -
Утилиты:
lsmod,dmsetup,dd
-
Для автоматической сборки нужно прописать
makeи запустить скрипт./build.sh(через sudo). -
Для ручной сборки необходимо выполнить следующие команды:
$ make
# insmod dmp.ko
# dmsetup create zero1 --table "0 $size zero"
# dmsetup create dmp1 --table "0 $size dmp /dev/mapper/zero1"
$size - размер устройства.
Тестирование заключается в проверке установки модулей:
$ lsmod | grep -e dmp -e zero
$ ls -l /dev/mapper
И осуществлении операций записи и чтения, с последующей проверкой сбора статистики:
# dd if=/dev/random of=/dev/mapper/dmp1 bs=4k count=1
# dd if=/dev/mapper/dmp1 of=/dev/null bs=4k count=1
$ cat /sys/module/dmp/stat/volumes
Перечисленные команды можно запустить через скрипт ./test.sh.
Пример вывода:
read:
reqs: 340
avg size: 4096
write:
reqs: 266
avg size: 4096
total:
reqs: 606
avg size: 4096
Для удаления созданных устройств создан скрипт ./clean.sh.