Puncte:2

Determinarea căii de blocare Linux de la Redfish

drapel cn

Context: Încerc să automatizez o instalare Linux prestabilită pe un server compatibil Redfish. În mod ideal, vreau să păstrez acest lucru cât mai independent de furnizor, astfel încât să pot suporta mai multe tipuri de servere (adică Dell, HP, Cisco etc.), dar lucrez la un Dell R430 (iDRAC 8 cu cel mai recent firmware).

Descriere: Încerc să găsesc o modalitate fiabilă de a prelua informații despre un volum de stocare de la Redfish și de a le mapa pe un dispozitiv bloc pe care Linux îl poate înțelege, astfel încât să pot spune instalatorului meu pe ce dispozitiv să instalez.

Exemplu: iau două unități și folosind Redfish îmi creez o matrice RAID-1. Acum am acest obiect „Volum”:

{                                                          
    „@Redfish.Settings”: {                                                                                             
        "@odata.context": "/redfish/v1/$metadata#Settings.Settings",                                                                                                                                                                           
        "@odata.type": "#Settings.v1_1_0.Settings",                                                                                                                                                                                            
        „SettingsObject”: {                                
            „@odata.id”: „/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Settings”
        },                                                 
        „SupportedApplyTimes”: [
            "Imediat",                                   
            „OnReset”,                                     
            „LaMaintenanceWindowStart”,
            „ÎnMaintenanceWindowOnReset”
        ]                                                  
    },                                                     
    "@odata.context": "/redfish/v1/$metadata#Volume.Volume",
    „@odata.id”: „/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1”,
    "@odata.type": "#Volume.v1_0_3.Volume",
    „Acțiuni”: {                                           
        „#Volume.CheckConsistency”: {
            „target”: „/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Actions/Volume.CheckConsistency”
        },                                                 
        „#Volume.Initialize”: {
            „[email protected]”: [
                "Rapid",                                    
                "Încet"                                     
            ],                                             
            „țintă”: „/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Actions/Volume.Initialize”
        }                                                  
    },                                                     
    „BlockSizeBytes”: 512,                                 
    „CapacityBytes”: 199447543808,
    „Descriere”: „Disc virtual 0”,
    „criptat”: fals,                                    
    „EncryptionTypes”: [                                   
        „NativeDriveEncryption”
    ],                                                     
    „Id”: „Disk.Virtual.0:RAID.Integrated.1-1”,
    „Identificatori”: [],                                     
    „Linkuri”: {                                             
        "Unități": [                                        
            {                                              
                „@odata.id”: „/redfish/v1/Systems/System.Embedded.1/Storage/Drives/Disk.Bay.0:Enclosure.Internal.0-1:RAID.Integrated.1-1”
            },                                             
            {                                              
                „@odata.id”: „/redfish/v1/Systems/System.Embedded.1/Storage/Drives/Disk.Bay.1:Enclosure.Internal.0-1:RAID.Integrated.1-1”
            }                                              
        ],                                                 
        „[email protected]”: 2
    },
    „Nume”: „Disc virtual 0”,
    „Operațiuni”: [],                                      
    „OptimumIOSizeBytes”: 65536,
    "Stare": {                                            
        „Sănătate”: „OK”,                                    
        „HealthRollup”: „OK”,
        „State”: „Activat”                                 
    },                                                     
    „VolumeType”: „În oglindă”                               
}

Există ceva aici pe care să îl pot folosi în mod fiabil pentru a-mi da seama care va fi calea dispozitivului bloc în Linux? În acest caz, știu că este:

$ lsblk /dev/sdc
NUME MAJ:MIN RM DIMENSIUNE RO TIP PUNCT DE MONTARE
sdc 8:32 0 185.8G 0 disc 
$ ls -al /dev/disk/by-id/ | grep sdc
scsi-361866da08170ff0026091a95033dd20a
wwn-0x61866da08170ff0026091a95033dd20a
$ ls -al /dev/disk/by-path/ | grep sdc
pci-0000:01:00.0-scsi-0:2:0:0

Dar până acum nu văd nicio modalitate evidentă de a trece de la ieșirea Redfish la oricare dintre aceste valori. Există poate un alt identificator pe partea Linux care m-ar putea apropia mai mult, astfel încât să pot lucra înapoi? Sau altundeva în Redfish pot căuta calea PCIe? Știu că iDRAC 9 poate oferi căi PCIe la nivel de șasiu, dar iDRAC 8 nu poate, dar chiar și atunci nu par să se mapeze în niciun fel la aceste căi în Linux.

Prima editare: m-am uitat la utilizarea diferitelor instrumente pe partea Linux pentru a interoga controlerul RAID (megacli, perccli, mai multe scripturi Python wrapper, cum ar fi acestea megaclisas.py), dar până acum nimic aici nu ajută la problema cartografierii.

drapel bo
Nu am acces la un idrac fizic, dar [ghidul API](https://dl.dell.com/topicspdf/idrac9-lifecycle-controller-v4x-series_api-guide_en-us.pdf) pentru 9 spune că există acest punct final: `/redfish/v1/Dell/Systems//Stocare/Volume/DellVirtualDisk/ ` Una dintre proprietăți este: `VirtualDiskTargetID`. Cum arată valoarea returnată pentru cazul dvs. de `sdc`?
drapel cn
folosim dimensiunea, numărul de serie sau tipul discului (sas/sata/nvme/etc) pentru a mapa aceste informații între ilo5 redfish și linux. Cu lsblk -o serial obțineți aceleași informații ca și cu atributul volumeuniqueidentifier al volumului logic din API-ul sebastă al lui ilo5. Habar n-am dacă este același lucru în idrac.
drapel cn
Pentru a detalia puțin, Dell Poweredge au o placă de șef, de exemplu, care este un controler raid ssd mic, de obicei, pentru unitatea de sistem de pe sistemul de operare. Cu acțiuni %pre pe kickstarturile noastre pentru foreman detectăm discurile boss (lsblk -o model,kname) și le folosim ca disc rădăcină. Pentru proliants am un alt instrument intern care verifică discurile sata și sas, iar dacă ambele sunt disponibile, atunci sata este pentru root, sas pentru date. Genul ăsta de alegeri.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.