2016-08-30 10 views
0

Я работаю над проектом, который связывает диски (и их связанные с ними статистики, такие как отображаемые iostat), и разделы для монтирования точек, но сталкиваются с проблемами с тем, как OS X делает Fusion Drive ,Программно получить информацию о драйвере OSX

Я смог собрать информацию о дисках и разделах из IO Registry и Disk Arbitration Framework. Аналогичным образом, я смог сопоставить диски и точки монтирования с помощью statfs (или команд mount или df). Однако отсутствует ссылка, в которой Fusion Drive входит в изображение. Вот пример вывода diskutil list:

$ diskutil list 
/dev/disk0 (internal, physical): 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *1.0 TB  disk0 
    1:      EFI EFI      209.7 MB disk0s1 
    2:   Apple_CoreStorage Macintosh HD   999.7 GB disk0s2 
    3:     Apple_Boot Recovery HD    650.0 MB disk0s3 
/dev/disk1 (internal, virtual): 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:     Apple_HFS Macintosh HD   +999.3 GB disk1 
           Logical Volume on disk0s2 
           FA33A826-C98E-425A-BCF1-9A68A926D36E 
           Unlocked Encrypted 

Статистика IORegistry из iostat (чтение/запись/байты чтения/записанные байты, время, затраченное передачи и т.д.) связаны с disk0 в выводе выше. Однако, df (или эквивалентные функции программных statfs) ассоциируют / точку монтирования с /dev/disk1:

$ df 
Filesystem      512-blocks  Used Available Capacity iused  ifree %iused Mounted on 
/dev/disk1      1951825920 575057552 1376256368 30% 71946192 172032046 29% /

Я хочу, чтобы иметь возможность соотносить чтения/записи в файловой системе в / с физическим диском disk0. Я потратил несколько часов на поиск здесь и в другом месте, чтобы связать disk1 с disk0s2. Исходный код для diskutil, по-видимому, находится в структуре DiskManagement, которая не является общедоступной.

Есть ли какой-либо способ, кроме текстового разбора вывода вышеприведенной команды diskutil list, связать установленный (виртуальный) привод слияния с его основным (физическим) разделом?

ответ

0

После нескольких часов обработки я обнаружил ключевой факт, что Fusion Drives (а также полное шифрование FileVault, введенное в Lion) используют функцию «Core Storage» (или CoreStorage), где один или несколько физические диски/разделы связаны с виртуальным диском.

Существует, как представляется, какой-либо общедоступный API для получения информации о CoreStorage программно, и какие команды имеются в документах.

В то же время diskutil cs list содержит достаточную анализируемую информацию, необходимую для необходимых мне соединений.

A P DF with examples and a lot more information can be found here.

 Смежные вопросы

  • Нет связанных вопросов^_^