本發明涉及服務器系統擴展領域,特別涉及一種服務器eepromass地址燒寫方法及系統。
背景技術:
現有sas存儲系統中主柜會通過sas線纜連接多級sas擴展柜,這樣可以增加系統存儲容量,此時各個擴展端口需要給他們分別分配一個sas地址才能夠被訪問到,每一個擴展端口的sas地址需不同,若發生重復則會導致系統找不到相應的擴展端口,故分配給每個擴展端口的sas地址必須是唯一的,現有服務器的控制器sas地址一般存在eeprom,而eeprom一般通過iic掛載在expander芯片上,燒寫時通過串口進行燒寫。
在現有的技術中,向控制器eeprom中燒寫sas地址需要通過串口,用相應的串口工具在命令提示符下輸入命令燒寫,此方法較為繁瑣,需要外接一個電腦,且電腦上要安裝相應的燒寫工具,且若控制器為主柜機箱,機箱會預留系統串口,通常此時為節省硬件資源,通常不會把expander芯片串口接到機箱,此時必須打開機箱,在裸環境下對用串口進行燒寫,不具有可靠性。
技術實現要素:
本發明提供一種服務器eepromass地址燒寫方法及系統,旨在解決現有技術的燒寫sas地址的方法中存在的問題和缺點。
本發明提供一種服務器eepromass地址燒寫方法,包括以下步驟:
s1.系統下發命令,expander芯片對下發的參數解析;
s2.檢驗參數是否合法,若不合法直接結束操作,若合法則執行步驟s3;
s3.根據參數判斷是讀eeprom還是寫eeprom,若為讀eeprom,則獲得產品類型,并根據產品類型獲得產品參數,并根據產品參數從eeprom中讀取數據后結束操作;若為寫eeprom,則獲得產品類型,并根據產品類型獲得產品參數,并根據產品參數從eeprom中寫出數據后結束操作。
作為本發明的進一步改進,所述步驟s3中的產品參數包括iic、總線號、設備地址。
作為本發明的進一步改進,所述步驟s1中包括:
在linux系統的命令行提示界面,下發命令,通過scsi協議將參數發送給expander,expander對下發的參數解析。
作為本發明的進一步改進,所述步驟s1具體還包括:
系統下發命令,用sg3_utils工具,通過scsi命令集訪問expander芯片給expander芯片發送數據,expander芯片對參數進行解析。
作為本發明的進一步改進,所述步驟s1中,系統通過sg3_utils工具下發8個8位整數和一個讀寫控制命令給expander芯片。
作為本發明的進一步改進,所述步驟s2中檢驗參數是否合法具體為:檢驗expander芯片接收到的數據是否為8個8位數據。
作為本發明的進一步改進,所述步驟s3中,若為寫eeprom的情況下,expander芯片iic協議直接對eeporm進行sas地址燒寫。
本發明的一種服務器eepromass地址燒寫系統,包括主柜、擴展柜、expander芯片、eeprom、hba卡,所述expander芯片分為主柜expander芯片和擴展柜expander芯片,所述主柜通過hba卡與主柜expander芯片連接,所述主柜expander芯片至少級聯一級擴展柜expander芯片,所述擴展柜與擴展柜expander芯片連接,所述擴展柜expander芯片連接eeprom并從eeprom中讀出sas地址。
作為本發明的進一步改進,所述expander芯片之間通過sas線纜連接。
作為本發明的進一步改進,所述expander芯片通過iic協議與eeprom連接。
本發明的有益效果是:本發明可以在系統下通過sg3_utils工具,在命令提示符下以命令行形式通過iic協議直接往eeprom中燒寫sas地址,此方法更簡便,提高了工作效率;可以節省相應的硬件接口成本,且避免了在裸環境下通過串口燒寫sas地址,具有更高的可靠性。
附圖說明
圖1是本發明一種服務器eepromass地址燒寫方法的流程圖;
圖2是本發明一種服務器eepromass地址燒寫系統的硬件拓撲圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。
實施例一:
如圖1所示,本發明的一種服務器eepromass地址燒寫方法,包括以下步驟:
s1.系統下發命令,expander芯片對下發的參數解析;
s2.檢驗參數是否合法,若不合法直接結束操作,若合法則執行步驟s3;
s3.根據參數判斷是讀eeprom還是寫eeprom,若為讀eeprom,則獲得產品類型,并根據產品類型獲得產品參數,并根據產品參數從eeprom中讀取數據后結束操作;若為寫eeprom,則獲得產品類型,并根據產品類型獲得產品參數,并根據產品參數從eeprom中寫出數據后結束操作。
步驟s3中的產品參數包括iic、總線號、設備地址。
步驟s1中包括:在linux系統的命令行提示界面,下發命令,通過scsi協議將參數發送給expander,expander對下發的參數解析。
步驟s1具體還包括:系統下發命令,用sg3_utils工具,通過scsi命令集訪問expander芯片給expander芯片發送數據,expander芯片對參數進行解析。
具體的,步驟s1中,系統通過sg3_utils工具下發8個8位整數和一個讀寫控制命令給expander芯片。
步驟s2中檢驗參數是否合法具體為:檢驗expander芯片接收到的數據是否為8個8位數據。
步驟s3中,若為寫eeprom的情況下,expander芯片iic協議直接對eeporm進行sas地址燒寫。
sas地址是8個8位整數,通常以16進制表現出來,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff。在linux系統中燒寫sas地址首先需安裝sg3_utils工具,此工具是一個linux開發包,用來直接使用scsi命令集訪問設備給設備發送數據。通過此工具下發8個8位整數和一個讀寫控制命令給expander芯片。然后芯片判斷數據是否合法,即判斷是否為8個8位數據,進而進行讀寫操作,或返回錯誤碼。
如圖1所示,在首先在linux系統的命令行提示界面,下發命令,通過scsi協議將參數發送給expander,expander對下發的參數解析,判斷參數是否合法,如果參數不合法直接結束,在系統界面打印錯誤提示,若合法再判斷是讀還是寫,繼而根據前面解析獲得的iic總線地址跟設備地址通過iic協議對eeprom做讀或寫操作。
實施例二:
如圖2所示,本發明的一種服務器eepromass地址燒寫系統,包括主柜、擴展柜、expander芯片、eeprom、hba卡,expander芯片分為主柜expander芯片和擴展柜expander芯片,主柜通過hba卡與主柜expander芯片連接,主柜expander芯片至少級聯一級擴展柜expander芯片,擴展柜與擴展柜expander芯片連接,擴展柜expander芯片連接eeprom并從eeprom中讀出sas地址。
expander芯片之間通過sas線纜連接。expander芯片通過iic協議與eeprom連接。
服務器系統主柜上可插入一個hba卡,其通過sas線纜與expander相連,而主柜通常會級聯一級或多級擴展柜增加其存儲空間,主柜要識別并在系統中找到這些擴展柜節點就需要通過識別不同的sas地址區分他們,而這些sas地址通常通過iic總線掛在expander上,expander通過iic協議從eeprom中讀出sas地址。
本發明專利公開了一種向eeprom中燒寫sas地址的方法;直接在系統下發命令,用sg3_utils工具,通過scsi協議將數據傳給expander芯片,芯片對參數進行解析,并通過iic協議直接對eeporm進行sas地址燒寫,不需要通過串口外接電腦用串口工具燒寫,更為簡便,節省資源,并具有更高的可靠性。
eeprom:electricallyerasableprogrammableread-onlymemory,一種非易失性的內存;
expander:存儲擴展柜內運行的固件;
hba:hostbusadapter,主機總線適配器,是一個在服務器和存儲裝置間提供輸入/輸出(i/o)處理和物理連接的電路板和/或集成電路適配器;
iic:inter-integratedcircuit,集成電路總線;
scsi:smallcomputersysteminterface,一種用于計算機和智能設備之間系統級接口的獨立處理器標準。
以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的保護范圍。