Невозможно создать нестабильную файловую систему для тестирования

В Ubuntu 14.04, когда я пытаюсь:

sudo dmsetup create test --table '0 123 flakey 1 0 /dev/loop0'

(или delay target), я получаю ошибку:

device-mapper: перезагрузите ioctl при тестировании fail: Недопустимый аргумент
Команда не выполнена

Но когда я использую цель error, она успешно выполняется.

Как я могу создать «нестабильное» устройство, используя dmsetup?

4
задан 25 June 2016 в 08:46

2 ответа

Короткий ответ:

  • Неправильный синтаксис (может быть это, был для более старой версии), правильный формат:

    '<logical_start_sector> <num_sectors> flakey <dev path> <offset> <up interval> <down interval>'
    

    dev_path на первом месте

  • Неспособный доступ к смонтированной базовой файловой системе. Избежать mount:

    sudo losetup <loop_device> <image_file>
    

Подробнее:

  • Я получил ту же ошибку, с помощью файловой системы цикла

    ~$ sudo mount -o loop image.iso  ~/Desktop/rmme0
    mount: /dev/loop4 is write-protected, mounting read-only
    
    ~$ sudo dmsetup create test --table '0 123 flakey 1 0 /dev/loop4'
    device-mapper: reload ioctl on test failed: Invalid argument
    Command failed
    

    Это был неправильный синтаксис, как мог найти ссылку:

    документ Linux (пакет): /usr/share/doc/linux-doc/device-mapper/dm-flakey.txt

    Table parameters
    ----------------
    <dev path> <offset> <up interval> <down interval> \
        [<num_features> [<feature arguments>]]
    
    Mandatory parameters:
        <dev path>: Full pathname to the underlying block-device, or a
                    "major:minor" device-number.
        <offset>: Starting sector within the device.
        <up interval>: Number of seconds device is available.
        <down interval>: Number of seconds device returns errors.
    
  • Таким образом, снова с:

    ~$ sudo dmsetup -v create test --table '0 123 flakey /dev/loop4 0 10 2'
    device-mapper: reload ioctl on test failed: Device or resource busy
    Command failed
    

    Найденный этим потоком: картопостроитель устройства: удалите отказавший ioctl: Устройство или ресурс занятая Команда перестали работать. Это закончилось, который могло повысить сообщение, когда базовая файловая система уже смонтирована.

    Так, сверился с разделами жесткого диска

    ~$ sudo dmsetup create test --table '0 123 flakey /dev/sda1 0 10 2'
    ~$ file /dev/mapper/test 
    /dev/mapper/test: symbolic link to ../dm-0
    

    Можно проверить подробно использующий подробный флаг:

    sudo dmsetup -vvv create test --table '0 123 flakey /dev/sda1 0 10 2'

  • Циклическое устройство не должно быть смонтировано, поэтому избегать использования mount создать его. Альтернативный путь, с помощью losetup:

    sudo losetup /dev/loop4 image.iso
    sudo dmsetup create test --table '0 123 flakey /dev/loop4 0 10 2'
    

Протестированный на Xubuntu 16.04 (реальная машина)

2
ответ дан 25 June 2016 в 08:46

я пытался делать это в своем предыдущем задании, где я тестировал устройство хранения. Проблема с хлопьевидным состоит в том, что это является обычно слишком хлопьевидным в неправильных местах и вызывает слишком резкую ошибку. У Вас есть он набор к ошибке каждая вторая секунда, которая слишком резка для чего-либо кроме судебных инструментов.

необходимо указать, как устройство является хлопьевидным, значение по умолчанию к серьезной ошибке, которая является тем, что препятствует тому, чтобы Вы использовали его, существует две других опции - drop_writes, и записи отбрасывания corrupt_bio_byte

- приведут все записи к сбою, но чтения успешно выполняются

, corrupt_bio_byte - вероятно, в чем Вы нуждаетесь, поскольку это допускает более тонкую поломку, которая возможна для инструментов обработать.

документация для dmflakey здесь https://www.kernel.org/doc/Documentation/device-mapper/dm-flakey.txt

, например:

Это должно генерировать, вызывают каждый 32-й байт каждого ЧТЕНИЯ, которое было 1, чтобы быть 0

sudo dmsetup create test --table '0 123 flakey 1 0 /dev/loop0 1 corrupt_bio_byte 32 r 1 0'
0
ответ дан 25 June 2016 в 08:46

Другие вопросы по тегам:

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