อัปเดตจากที่เก็บข้อมูล
อัปเดตเฟิร์มแวร์ของเซิร์ฟเวอร์จากที่เก็บข้อมูลระยะไกล
ภาพรวม
XCC ได้เปิดตัวการอัปเดตเฟิร์มแวร์บนเซิร์ฟเวอร์โดยใช้แพ็คเกจ Update Bundles (Service Packs) คุณลักษณะนี้ทำให้กระบวนการง่ายขึ้นโดยใช้ API หนึ่งรายการหรือเครื่องมือไคลเอ็นต์ Redfish เพื่ออัปเดตเฟิร์มแวร์ทั้งหมดในระบบ รวมทั้งแพ็คเกจเฟิร์มแวร์ OOB และ IB ด้วย กระบวนการดังกล่าวเกี่ยวข้องกับการค้นหาแพ็คเกจเฟิร์มแวร์ที่เกี่ยวข้อง ดาวน์โหลดและแตกไฟล์จากเซิร์ฟเวอร์ HTTP/HTTPS ระยะไกล หรืออัปโหลดไปยังที่เก็บข้อมูลภายใน BMC ผ่านเว็บเบราว์เซอร์ หรือติดตั้งจากไดเร็กทอรีที่ใช้ร่วมกันของ CIFS หรือ NFS
ไฟล์ข้อมูลเมตาต้องอยู่ในไดเร็กทอรีระดับรากของระบบไฟล์ที่ใช้ร่วมกันของเครือข่าย หากใช้การเมาต์ CIFS หรือ NFS โดยมีการระบุเพย์โหลดของเฟิร์มแวร์ในข้อมูลเมตา อุปกรณ์ microSD ของเซิร์ฟเวอร์สามารถจัดเก็บที่เก็บข้อมูลประวัติ ทำให้ผู้ใช้สามารถย้อนกลับระดับเฟิร์มแวร์ได้
หากแพ็กเกจเฟิร์มแวร์มีเพย์โหลดที่ไม่รองรับการอัปเดตเฟิร์มแวร์นอกแบนด์ BMC จะเริ่มเซิร์ฟเวอร์และกำหนดค่าให้บูตจากอิมเมจของระบบปฏิบัติการแบบฝังที่ติดตั้งใน BMC ก่อนดำเนินการอัปเดต
Update Bundle และข้อมูลเมตา
Update Bundle (Service Packs) เป็นไฟล์บีบอัดของชุดเฟิร์มแวร์ ประกอบด้วยแพ็คเกจเฟิร์มแวร์ตั้งแต่หนึ่งแพ็คเกจขึ้นไปสำหรับส่วนประกอบในระบบ คุณลักษณะการอัปเดตจาก Repository ของ XCC จะใช้ไฟล์ Update Bundle ไฟล์ชุดที่คลายซิปมีข้อมูลเมตาและไบนารีเพย์โหลด ไฟล์ข้อมูลเมตา JSON ให้ข้อมูลแก่ XCC เกี่ยวกับประเภทของอิมเมจเฟิร์มแวร์ที่ไฟล์ชุดมีอยู่ และไบนารีเพย์โหลดจะจัดเตรียมอิมเมจเฟิร์มแวร์
ที่เก็บข้อมูลเฟิร์มแวร์ภายใน XCC
Update Bundle สามารถมีแพ็คเกจเฟิร์มแวร์ได้หลายชุด และ XCC (อุปกรณ์อิเล็กทรอนิกส์) จะสงวนพื้นที่ 2GB ในแฟลชสำหรับคุณลักษณะใหม่ เมื่อได้รับชุดใหม่แล้ว XCC จะล้างข้อมูลเก่า บางแพลตฟอร์มใช้การ์ด MicroSD เพื่อให้พื้นที่เก็บข้อมูลเพิ่มเติม และ XCC จะย้าย Updated Bundle ล่าสุดไปยังที่เก็บข้อมูลในอดีตของการ์ด SD ที่เก็บข้อมูลในอดีตของเฟิร์มแวร์สามารถจัดเก็บได้สูงสุดสามชุด และผู้ใช้สามารถใช้คุณลักษณะ Firmware Rollback เพื่อเปลี่ยนกลับเป็นชุดก่อนหน้าได้
หาก Update Bundle รวมเฉพาะแพ็คเกจเฟิร์มแวร์ OOB ที่มีในระบบ XCC จะไม่เปลี่ยนสถานะพลังงานของระบบ ในการอัปเดตเฟิร์มแวร์อุปกรณ์ PCI จะต้องมีการเปิดระบบเสียก่อน
หาก Update Bundle มีแพ็คเกจเฟิร์มแวร์ IB ที่มีอยู่ในระบบ XCC จะจัดเก็บสถานะพลังงานของระบบก่อนที่จะอัปเดตและกู้คืนสถานะพลังงานหลังจากอัปเดต Update Bundle แล้ว ในระหว่างกระบวนการอัปเดต XCC จะรีบูตโฮสต์เป็นระบบปฏิบัติการแบบฝัง
หาก Update Bundle มีระดับข้อกำหนดเบื้องต้นของเฟิร์มแวร์ UEFI และถ้าเวอร์ชัน UEFI ที่ติดตั้งในปัจจุบันไม่ตรงตามหรือต่ำกว่าระดับนั้น XCC จะปิดระบบเพื่อทำการอัปเดตเฟิร์มแวร์ UEFI ก่อน
หาก Update Bundle มีระดับข้อกำหนดเบื้องต้นของเฟิร์มแวร์ XCC และถ้าเวอร์ชัน XCC ที่ติดตั้งปัจจุบันไม่เป็นไปตามหรือต่ำกว่าระดับนั้น XCC จะรีบูตก่อนหลังจากอัปเกรดตัวเอง
อัปเดตด้วย WebGUI
ด้วยการอัปเดตจากที่เก็บข้อมูล ผู้ใช้สามารถกำหนดค่า XCC เพื่อซิงค์เฟิร์มแวร์ของเซิร์ฟเวอร์ให้ตรงกับที่เก็บข้อมูลเฟิร์มแวร์ CIFS/NFS ระยะไกลได้ ที่เก็บข้อมูลเฟิร์มแวร์ควรประกอบด้วยแพ็คเกจต่างๆ ซึ่งรวมถึงไฟล์ไบนารี่และข้อมูลเมตา หรือ Update Bundle Metadata JSON และไฟล์ไบนารีอื่นๆ ที่เกี่ยวข้อง XCC แยกวิเคราะห์ไฟล์ Metadata JSON เพื่อเลือกแพ็คเกจเฟิร์มแวร์ที่รองรับการอัปเดต OOB สำหรับฮาร์ดแวร์ระบบเฉพาะนี้ แล้วจึงเริ่มการอัปเดตเป็นแบทช์
- เครื่องหมายถูกสีเขียว : การอัปเกรดเฟิร์มแวร์เสร็จสมบูรณ์แล้ว
- เครื่องหมาย X สีแดง : การอัปเกรดเฟิร์มแวร์ล้มเหลว
- กำลังอัปเดต: กำลังอยู่ระหว่างการอัปเกรดเฟิร์มแวร์
- ยกเลิก: การอัปเกรดเฟิร์มแวร์ถูกยกเลิก
- รอดำเนินการ: กำลังรอปรับใช้การอัปเกรดเฟิร์มแวร์
ในการอัปเดตจากที่เก็บข้อมูล ให้ดำเนินการขั้นตอนต่อไปนี้:
- คลิก เชื่อมต่อ กับที่เก็บข้อมูลระยะไกลหลังจากป้อนข้อมูลที่เก็บข้อมูลระยะไกล
- คลิก อัปเดต เพื่อเริ่มการอัปเดตเป็นแบทช์
- คลิก ดูรายละเอียด เพื่อดูสถานะการอัปเดต โดยสถานะจะมีทั้งหมด 5 หมวดหมู่ตามที่กล่าวไปข้างต้น
- คลิก หยุดการอัปเดต จะเป็นการยกเลิกการอัปเกรดในคิวหลังจากการอัปเดตแบบแพคเกจการติดตั้งปัจจุบันเสร็จสมบูรณ์แล้ว
- คลิก ตัดการเชื่อมต่อ เพื่อตัดการเชื่อมต่อจากที่เก็บข้อมูลระยะไกล
- หากการอัปเดตกำหนดให้ต้องรีสตาร์ท XClarity Controller เพื่อให้มีผล ข้อความแจ้งเตือนจะปรากฏขึ้น ดูรายละเอียดเกี่ยวกับวิธีการรีสตาร์ท XClarity Controller ได้ที่ การดำเนินการด้านพลังงาน
อัปเดตด้วย Redfish
อินเทอร์เฟซ Redfish ใช้เพย์โหลดรูปแบบ JSON เพื่อให้คนสามารถอ่านและเขียนสคริปต์ได้ง่าย XCC Redfish มี API มาตรฐาน (SimpleUpdate) เพื่อดึงไฟล์ Update Bundle จาก URI ผ่าน HTTP/HTTPS/SFTP/TFTP เช่นเดียวกับ Multipart HTTP Push Update เพื่อทำการพุชไฟล์ Update Bundle UpdateService คุณสามารถใช้คำสั่งหรือเครื่องมือไคลเอ็นต์ Redfish รายการเดียวเพื่อทำการอัปเดตเฟิร์มแวร์และสถานะการอัปเดตคิวรี
คำสั่งตัวอย่างเพื่อพุชไฟล์ชุดไปยัง XCC และสร้างงานสำหรับการถ่ายโอนและการตรวจสอบไฟล์:
curl -s -k -u USERID:PASSW0RD-F 'UpdateParameters={"Targets":[]};type=application/json' -F 'UpdateFile=@./NY7D72-IB-320.zip;type=application/octet-stream' https://10.240.218.157:443/mfwupdate
{
"ld": "f2fd6e9d-cOa6-4b11-b9f6-69a17a1 ,
"Name": "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1 e579c",
"@odata.type": "#Task.v1_5_1. Task",
"@odata.id': "[redfish/v 1 fTaskServicefTasks/f2fd6e9d-c0a6-4b11-b9f6-69a 17a1 e579c",
"Messages": [l
"Description": "This resource represents a task for a Redfish implementation."
"StartTime": "2022-03-21 TOT 16:41 +00:00",
"TaskMonitor": "/redfish/v1fTaskSen.'ice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"@odata.context": "'redfish/v1/$metadata#Task.Task",
"@odata.etag":
"PercentCompIete": O,
"HidePayload": true,
"TaskState": "New"
}
คำสั่งตัวอย่างไปยัง API ของงานตอบสนองด้วยรหัสงานสำหรับการอัปเดตเฟิร์มแวร์หลังจากการถ่ายโอนและการตรวจสอบอิมเมจเสร็จสิ้น:
<strong className="ph b">https://10.240.218.157/
redfish/v1/TaskService/Tasks/f2fd6e9d c0a6 4b11 b9f6 69a17a1e579c</strong>
{
"@odata.etag": ,
"Name-: "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1e579c",
Task",
"IredfishNI/TaskSemcenasksff2fd6e9d-cOa6-4bI I-b9f6-69aI 7a1e579c",
"Messages": [
{
"Resolution": "Follow the referenced job and monitor the job for further updates.",
"@odata.type":
'MessageSeverity": "0K",
"MessageArgs": [
"IredfishtvI/JobService/J0bs/J0bROOOOOI-lJPdate"
],
"Messageld": "Update. 1 .O.OperationTransitionedToJob",
"Message": "The update operation has transitioned to the job at URI 'Iredfsh/vl IJobService/Jobs/JobR000001-Update'."
}
],
"Description": "This resource represents a task for a Redfish implementation.",
"HidePayIoad": true,
"StartTime":
"TaskMonitor: "'redfish1v1/TaskseNice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"TaskStatus": "0K",
"@odata.context-: "'redfish/v1/$metadata#Task.Task",
"ld": "f2fd6e9d-cOa6-4b11-b9f6-6ga17a 1 e579c",
"Percentcomplete": 100,
"EndTime": 2022-03-21
"TaskState": "Completed"
}
โดยการคิวรีรหัสงาน XCC จะส่งคืนขั้นตอนงานสำหรับแพ็คเกจเฟิร์มแวร์ทั้งหมดใน Update Bundle ดังที่แสดงด้านล่าง:
https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001-Update
{
"@odata.etag": "\"1647847200776\"", "PercentComplete": 100, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update", "Messages": [
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"HardDiskDrive"
],
"MessageId": "Update.1.0.UpdateSuccessful ",
"Message": " Device 'HardDiskDrive' successfully updated with image 'NY7D72-IB-320.zip'."
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/UEFI"
],
"MessageId": "Update.1.0.UpdateSuccessful",
"Message": "Device '/redfish/v1/UpdateService/FirmwareInventory/UEFI' successfully updated with image 'NY7D72-IB-320.zip'. "
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "Critical",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary"
],
"MessageId": "Update.1.0.ApplyFailed",
"Message": "Installation of image 'NY7D72-IB-320.zip' to '/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary' failed."
}
],
"Description": "This resource is used to represent a job for a Redfish implementation.",
"StartTime": "2022-03-21T07:16:58+00:00",
"Id": "JobR000001-Update",
"EndTime": "2022-03-21T07:20:00+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job", "Steps": {
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps"
},
"Name": "JobR000001-Update", "StepOrder": [
"lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "lnvgy_fw_uefi_ese103a-1.00_anyos_comp.uxz", "lnvgy_fw_xcc_esx301p-0.01_anyos_comp.uxz"
],
"JobState": "Completed"
เมื่อมีการคิวรีขั้นตอนงาน XCC จะส่งคืนข้อมูลเพิ่มเติมไปยังการอัปเดตเฟิร์มแวร์แต่ละรายการ:
https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001- Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt
{
"@odata.etag": "\"1647847202778\"", "PercentComplete": 1, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq- cq37_anyos_comp.lvt",
"Messages": [],
"Description": "This resource is used to represent a job for a Redfish implementation.", "StartTime": "2022-03-21T07:16:58+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job",
"Id": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "Name": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "EndTime": "2022-03-21T07:20:02+00:00",
"JobState": "Completed"
ทำการดาวน์โหลดจากที่เก็บข้อมูลระยะไกลและอัปเดตตามที่แสดงด้านล่าง:
system> syncrep
syncrep [options] Launch firmware sync from remote repository options:
-t protocol to connect repository. The local type will reboot host immediately. (eg: syncrep -t samba -l url -u user -p password; syncrep -t local -l /bulk/bundle.tgz;
syncrep -t http -l http://IP/bundle.tgz)
-l location of remote repository (URL format)
-u User
-p Password
-o option (extra option string for samba and nfs mounts)
-d domain (domain for samba mount)
-q query current update status
-c cancel the sync process
-r <> firmware rollback
-gl get repository list