Điểm:2

Xác định đường dẫn khối Linux từ Redfish

lá cờ cn

Bối cảnh: Tôi đang cố tự động cài đặt Linux được chèn sẵn trên một máy chủ hỗ trợ Redfish. Lý tưởng nhất là tôi muốn giữ điều này ở mức không liên quan đến nhà cung cấp nhất có thể để tôi có thể hỗ trợ nhiều loại máy chủ (tức là Dell, HP, Cisco, v.v.), nhưng tôi đang làm việc trên Dell R430 (iDRAC 8 với phần sụn mới nhất).

Mô tả: Tôi đang cố gắng tìm một số cách đáng tin cậy để lấy thông tin về dung lượng lưu trữ từ Redfish và ánh xạ thiết bị này tới một thiết bị khối mà Linux có thể hiểu được để tôi có thể cho trình cài đặt của mình biết nên cài đặt thiết bị nào.

Ví dụ: Tôi lấy hai ổ đĩa và sử dụng Redfish để tạo cho mình một mảng RAID-1. Bây giờ tôi có đối tượng "Âm lượng" này:

{                                                          
    "@Redfish.Settings": {                                                                                             
        "@odata.context": "/redfish/v1/$metadata#Settings.Settings",                                                                                                                                                                           
        "@odata.type": "#Settings.v1_1_0.Settings",                                                                                                                                                                                            
        "Cài đặt đối tượng": {                                
            "@odata.id": "/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Settings"
        },                                                 
        "Thời gian áp dụng được hỗ trợ": [
            "Ngay tức khắc",                                   
            "Đặt lại",                                     
            "AtMaintenanceWindowStart",
            "InMaintenanceWindowOnReset"
        ]                                                  
    },                                                     
    "@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",
    "Hành động": {                                           
        "#Volume.CheckConsistency": {
            "mục tiêu": "/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Actions/Volume.CheckConsistency"
        },                                                 
        "#Volume.Initialize": {
            "[email protected]": [
                "Nhanh",                                    
                "Chậm"                                     
            ],                                             
            "mục tiêu": "/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1/Actions/Volume.Initialize"
        }                                                  
    },                                                     
    "BlockSizeByte": 512,                                 
    "Bytes dung lượng": 199447543808,
    "Mô tả": "Đĩa ảo 0",
    "Mã hóa": sai,                                    
    "Kiểu mã hóa": [                                   
        "Mã hóa NativeDrive"
    ],                                                     
    "Id": "Disk.Virtual.0:RAID.Integrated.1-1",
    "Định danh": [],                                     
    "Liên kết": {                                             
        "Ổ đĩa": [                                        
            {                                              
                "@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
    },
    "Tên": "Đĩa ảo 0",
    "Hoạt động": [],                                      
    "OptimumIOSizeBytes": 65536,
    "Trạng thái": {                                            
        "Sức khỏe": "OK",                                    
        "HealthRollup": "OK",
        "Trạng thái": "Đã bật"                                 
    },                                                     
    "Loại âm lượng": "Được nhân đôi"                               
}

Có điều gì ở đây mà tôi có thể sử dụng một cách đáng tin cậy để tìm ra đường dẫn thiết bị khối trong Linux không? Trong trường hợp này, tôi biết đó là:

$ lsblk /dev/sdc
TÊN MAJ:KÍCH THƯỚC RM TỐI THIỂU RO LOẠI NÚI
sdc 8:32 0 185,8G 0 đĩa 
$ ls -al /dev/đĩa/by-id/ | grep sdc
scsi-361866da08170ff0026091a95033dd20a
wwn-0x61866da08170ff0026091a95033dd20a
$ ls -al /dev/đĩa/theo đường dẫn/ | grep sdc
pci-0000:01:00.0-scsi-0:2:0:0

Nhưng cho đến nay tôi không thấy có cách rõ ràng nào để chuyển từ đầu ra của Redfish sang bất kỳ giá trị nào trong số đó. Có lẽ có một số định danh khác ở phía Linux có thể giúp tôi tiến gần hơn để tôi có thể làm việc ngược lại? Hoặc ở một nơi nào khác trong Redfish, tôi có thể truy vấn đường dẫn PCIe? Tôi biết iDRAC 9 có thể cung cấp các đường dẫn PCIe ở cấp Khung gầm nhưng iDRAC 8 thì không thể, nhưng ngay cả khi đó chúng dường như không ánh xạ theo bất kỳ cách nào tới các đường dẫn trong Linux này.

Chỉnh sửa đầu tiên: Tôi đã xem xét việc sử dụng các công cụ khác nhau ở phía Linux để thẩm vấn bộ điều khiển RAID (megacli, perccli, một số tập lệnh Python trình bao bọc cho các tập lệnh này như megaclisas.py), nhưng cho đến nay không có gì ở đây giúp giải quyết vấn đề lập bản đồ.

lá cờ bo
Tôi không có quyền truy cập idrac vật lý nhưng [Hướng dẫn API](https://dl.dell.com/topicspdf/idrac9-lifecycle-controller-v4x-series_api-guide_en-us.pdf) cho 9 nói rằng có điểm cuối này: `/redfish/v1/Dell/Systems//Lưu trữ/Tập/DellVirtualDisk/ ` Một trong những thuộc tính đó là: `VirtualDiskTargetID`. Giá trị trả về trông như thế nào đối với trường hợp `sdc` của bạn?
lá cờ cn
chúng tôi sử dụng kích thước, số sê-ri hoặc loại đĩa (sas/sata/nvme/etc) để ánh xạ thông tin đó giữa ilo5 redfish và linux. Với lsblk -o serial, bạn nhận được thông tin giống như với thuộc tính volumeuniqueidentifier của ổ đĩa logic trong api cá đỏ của ilo5. Tôi không biết liệu điều này có giống với idrac không.
lá cờ cn
để giải thích một chút, ví dụ, dell poweredges có một thẻ trùm, đây là một bộ điều khiển đột kích ssd nhỏ thường dành cho ổ đĩa hệ thống trên hệ điều hành. Với các hành động% trước khi khởi động quản đốc, chúng tôi phát hiện các đĩa chính (lsblk -o model,kname) và chúng tôi sử dụng đĩa đó làm đĩa gốc. Đối với proliant, tôi có một công cụ nội bộ khác để kiểm tra đĩa sata và sas, và nếu cả hai đều khả dụng, thì sata dành cho root, sas dành cho dữ liệu. Đó là loại lựa chọn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.