несоответствия mdadm, когда выполнено программно

Согласно [11763]Ubuntu Bug 1239578[11764], это будет RTL8192EE. Последний статус, кажется, что есть некоторые, возможно, рабочие бета-драйверы вокруг, но официального релиза пока нет.
  • (Я обнаружил, что с помощью двух поисков Google: один для [11765]realtek 818b[11766] и другой для [11767]10ec 818b[11768]. [11769]10ec[11770] - это идентификатор поставщика для Realtek. [11771]818b[11772] - это идентификатор устройства, присвоенный Realtek. Поиск в этом направлении работает практически для любого устройства PCI/PCI-X/PCIe.)
  • .
  • 2
    13.04.2017, 15:36
    1 ответ

    TL;DR.

    Я узнал, в чем проблема! Мне пришлось спать некоторое время между некоторыми из задач разбиения. Очевидно, я наткнулся на проблемы с параллельностью.

    Глубина:

    Похоже, что когда процесс завершается, это не значит, что ядро уже выполнило свою роль в процессе (в случае, если ядро должно что-то сделать после данного процесса). В моем случае это была разметка - видимо, я начал mdadm --create слишком рано, когда ядро еще не обновило некоторые изменения раздела. И да, между ними была partprobe, но, похоже, он тоже не знает об изменениях.

    Я начал отлаживать это с помощью скриптов оболочки, клиповых php-скриптов, веб-скриптов, пока не наткнулся на:

    [root@stone /] parted -s /dev/sdb mklabel gpt unit GB mkpart primary 0 100%
    [root@stone /] parted -s /dev/sdc mklabel gpt unit GB mkpart primary 0 100%
    
    [root@stone /] partprobe
    
    [root@stone /] lsblk
    sda      8:0    0  55.9G  0 disk
    ├─sda1   8:1    0     1M  0 part
    ├─sda2   8:2    0   500M  0 part /boot/efi
    ├─sda3   8:3    0   500M  0 part [SWAP]
    └─sda4   8:4    0  54.9G  0 part /
    sdb      8:16   0 931.5G  0 disk
    └─sdb1   8:17   0 931.5G  0 part
    sdc      8:32   0 931.5G  0 disk
    

    Когда команды выполнялись без интервалов между ними, что позволяло процессору обрабатывать их как можно быстрее - я заметил, что /dev/sdc еще не обновил таблицу разделов.

    Видимо, следующей командой после этой partprobe является mdadm --creatate, которая стартовала без изменений таблицы разделов, что привело к странному поведению.

    Может быть, мои наблюдения и предположения совершенно неверны, но, по крайней мере, так я могу объяснить ситуацию логически для себя.

    Да, исправление заключалось в добавлении сна между вызовами:

    [root@stone /] parted -s /dev/sdb mklabel gpt unit GB mkpart primary 0 100%
    [root@stone /] parted -s /dev/sdc mklabel gpt unit GB mkpart primary 0 100%
    
    [root@stone /] sleep 1
    
    [root@stone /] partprobe
    
    [root@stone /] sleep 1
    
    [root@stone /] lsblk
    sda      8:0    0  55.9G  0 disk
    ├─sda1   8:1    0     1M  0 part
    ├─sda2   8:2    0   500M  0 part /boot/efi
    ├─sda3   8:3    0   500M  0 part [SWAP]
    └─sda4   8:4    0  54.9G  0 part /
    sdb      8:16   0 931.5G  0 disk
    └─sdb1   8:17   0 931.5G  0 part
    sdc      8:32   0 931.5G  0 disk
    

    Это исправило проблему.

    В конце концов, однако, я до сих пор не могу найти логического объяснения тому, почему в случае RAID0 он не сделал симлинк, где он сделал в случае RAID1. Я просто не могу понять, что такое готовность дисков, которая препятствует созданию symlink...

    1
    27.01.2020, 22:22

    Теги

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