一種分布式存儲系統的初始參數配置方法
【專利摘要】本發明涉及一種分布式存儲系統的初始參數配置方法,屬于計算機數據庫管理技術領域。該方法分為三個階段:訓練階段、使用階段和動態更新階段;用戶先進行訓練階段得到性能模型,然后在使用階段將性能模型用于解決分布式存儲系統的初始參數配置問題;之后,在動態更新階段,根據用戶的反饋對性能模型進行動態更新。本方法能夠有效避免了傳統數據庫和調參工具的冷啟動問題,在滿足用戶需求的前提下盡可能地節省硬件成本,提高系統性能,為用戶帶來更高的性價比。
【專利說明】
-種分布式存儲系統的初始參數配置方法
技術領域
[0001] 本發明屬于計算機數據庫管理技術領域,特別設及在大數據應用開發過程中一種 分布式存儲系統的初始參數配置方法。
【背景技術】
[0002] 隨著互聯網的高速發展和社會信息化步伐的加快,各行業的數據迅猛發展,人類 已經步入大數據時代。大數據最顯著的特點是"4V"特征:更大的規模、更高的多樣性、更快 的速度和更低的價值密度。在運四個特點中,更大的規模成為人們最為關注的焦點。因為大 數據的規模已經超出了傳統的數據存儲系統的極限,如傳統的本地文件系統的極限為TB 級,而PB級數據存儲的需求在大數據時代隨處可見;傳統關系數據庫能夠有效管理的數據 量極限為億級,而早在2012年,Facebook已經每天處理高達25億條數據。在運種背景下,針 對大數據的存儲與管理已經成為了計算機領域的前沿性課題。
[0003] 隨著大數據技術的發展,分布式存儲系統應運而生,分布式存儲系統通過將數據 存放到多臺服務器上,有效地解決了單臺服務器能夠存儲的數據量有限的問題,具有良好 的擴展性。分布式存儲系統主要包括分布式文件系統,如HDFS、GFS和Lustre;分布式關系數 據庫,如MySQL Cluster;分布式非關系數據庫,如Cassan化a、皿ase、MangoDB等。在利用分 布式存儲系統進行大數據的存儲時,首先面臨分布式存儲系統的初始參數配置問題。分布 式存儲系統的初始參數配置,首先是對系統的硬件參數進行配置,包括:服務器個數,CPU、 內存和硬盤的大小等,然后是對分布式存儲系統的核屯、軟件參數進行配置,包括副本數、一 致性級別等。對于用戶來說,參數配置的目的既要保證分布式存儲系統的各方面需求得到 滿足,又要在硬件上的花費盡可能少。研究發現,參數的配置對分布式存儲系統性能的影響 具有決定性的效果。糟糕的是,在分布式存儲系統系統中,任何一個配置參數的調整往往不 能立即看到效果,而是需要當數據量到達一定規模的時候,其作用才能凸現出來。
[0004] 針對分布式存儲系統的初始參數配置問題,目前業內都是通過人工手動配置的方 法解決,工作量較大,鮮有自動配置的方法出現。除了初始參數配置外,對系統的參數優化 方法的研究成果較多,尤其是關系數據庫系統,都是在系統運行一段時間之后發現性能問 題和資源瓶頸,通過分析歷史數據和日志,得出需要調整的參數,如化acle 1 Ig和跨平臺的 調優工具iTuned。運些方法用于參數配置時都存在冷啟動問題,難W較好地對系統的初始 參數進行配置。
【發明內容】
[0005] 本發明的目的是克服已有技術的不足之處,提出一種分布式存儲系統的初始參數 配置方法;避免了傳統數據庫和調參工具冷啟動的問題,在滿足用戶需求的前提下盡可能 地節省硬件成本,提高系統性能,為用戶帶來更高的性價比。
[0006] 本發明提出一種分布式存儲系統的初始參數配置方法,該方法分為=個階段:訓 練階段、使用階段和動態更新階段。用戶先進行訓練階段得到性能模型,然后在使用階段將 性能模型用于解決分布式存儲系統的初始參數配置問題;之后,在動態更新階段,根據用戶 的反饋對性能模型進行動態更新。
[0007] 上述方法具體步驟如下:
[0008] (1)訓練階段:對分布式存儲系統進行測試,構建性能模型;具體步驟如下:
[0009] (1-1)選取分布式存儲系統的硬件參數和核屯、軟件參數,并確定硬件參數和核屯、 軟件參數的取值范圍;
[0010] (1-2)確定需要測試的步驟(1-1)中各參數的組合方案;
[0011] (1-3)選定測試服務器的硬件配置參數;
[0012] (1-4)在步驟(1-3)選定的測試服務器上安裝虛擬機平臺;
[0013] (1-5)選定客戶端服務器,配置網絡環境,保證客戶端服務器和測試服務器在同一 個網段下,在客戶端服務器上安裝YCSB測試程序;
[0014] (1-6)在步驟(1-4)建立的虛擬機平臺上創建種子虛擬機,安裝Linux操作系統W 及必要的軟件,安裝分布式存儲系統;
[0015] (1-7)根據步驟(1-2)中確定的參數組合方案,對每一組合方案分別進行測試,并 記錄性能指標的測試結果;
[0016] (1-8)對步驟(1-7)得到的每一個性能指標的測試結果,構建性能模型并求解;
[0017] (2)使用階段:對分布式存儲系統進行初始參數配置,計算其硬件參數和核屯、軟件 參數配置;具體步驟如下:
[0018] (2-1)用戶根據自己的需求分別確定多個性能指標的目標值;
[0019] (2-2)根據步驟(1-1)確定的硬件參數和核屯、軟件參數取值范圍,對所有的性能指 標,分別按照按步驟(1)得到的性能模型計算所有參數取值組合的結果,并按照計算得到的 對應性能指標的值從低到高進行排序;
[0020] (2-3)對于所有參數取值組合的性能指標計算結果,過濾掉小于步驟(2-1)中設定 的目標值的參數取值組合;
[0021] (2-4)對于剩下的參數取值組合,分別按照事先設定的價格函數依次計算其價格;
[0022] (2-5)對于步驟(2-4)的計算結果,選取價格最小即成本最低的參數組合作為分布 式存儲系統的參數配置結果;
[0023] (3)動態更新階段:動態更新性能模型,具體步驟如下:
[0024] (3-1)收集用戶對于使用階段得到的分布式存儲系統的硬件參數和核屯、軟件參數 配置和對應的性能指標的反饋;
[002引(3-2)對每一個性能指標更新性能模型;
[0026] (3-3)重復步驟(3-1)至(3-2),按照用戶需求,對得到的新的性能模型不斷進行更 新。
[0027] 本發明提出的分布式存儲系統的初始參數配置方法,其優點是:
[0028] 1、本發明方法避免了傳統數據庫和調參工具冷啟動的問題,在滿足用戶需求的前 提下盡可能地節省硬件成本,提高系統性能,為用戶帶來更高的性價比;
[0029] 2、本發明方法中的性能模型支持動態更新,可W根據用戶的反饋進行學習,不斷 地提高性能模型的準確度。
【具體實施方式】
[0030] 本發明提出的一種分布式存儲系統的初始參數配置方法,下面結合具體實施例對 本發明進一步詳細說明如下。
[0031] 本發明提出的一種分布式存儲系統的初始參數配置方法,該方法分為=個階段: 包括訓練階段對分布式存儲系統進行測試,構建性能模型,使用階段對分布式存儲系統進 行初始參數配置,計算其硬件參數和核屯、軟件參數配置;和動態更新階段按照用戶需求的 反饋,對得到的新的性能模型不斷進行更新。
[0032] 本實施例采用的分布式存儲系統W化ssan化a為例,具體實施步驟如下:
[0033] (1)訓練階段:對分布式存儲系統(化ssamlra)進行測試,構建性能模型,具體步驟 如下:
[0034] (1-1)選取分布式存儲系統的硬件參數和核屯、軟件參數,并確定運些硬件參數和 核屯、軟件參數的取值范圍;本實施例中選取的參數列表和相應的取值范圍如表1所示,包括 5個參數;
[0035]
[0036]
[0037] 表 1
[0038] (1-2)確定需要測試的表1中各參數取值的組合方案,本實施例中采用的參數取值 的組合方案如表2所示,共54組;
[0039]
[0040]
[0041] 表 2
[0042] (1-3)選定測試服務器,所選服務器的硬件配置參數至少為16核CPU, 64GB內存, 2TB硬盤;
[0043] (1-4)在步驟(1-3)選定的測試服務器上安裝虛擬機平臺,如VMware ,^enStack, VbtualBox等商業程序;
[0044] (1-5)選定客戶端服務器,配置網絡環境,保證客戶端服務器和測試服務器在同一 個網段下,網絡帶寬至少1GB,在客戶端服務器上安裝YCSB開源測試程序;
[0045] (1-6)在步驟(1-4)建立的虛擬機平臺上創建種子虛擬機,安裝Linux操作系統W 及必要的處理程序如化va等,安裝分布式存儲系統(本實施例中采用化ssamlra);
[0046] (1-7)根據表2中的參數組合方案,對每一參數組合方案分別進行測試,并記錄性 能指標的測試結果;具體步驟如下:
[0047] (1-7-1)通過步驟(1-6)建立的種子虛擬機分別復制出若干個相同虛擬機作為測 試虛擬機,測試虛擬機的個數等于表2中所需測試組合中的節點數;
[004引(1-7-2)保證所有測試虛擬機的每一類硬件配置參數(如CPU、內存、硬盤)相加總 和不大于步驟(1-3)中選定的測試服務器相對應的同類硬件配置參數的總數;
[0049] (1-7-3)修改所有測試虛擬機的IP地址使得它們互不相同,修改所有測試虛擬機 上的分布式存儲系統(Cassan化a)的必要參數(例如:種子IP地址),將所有的測試虛擬機組 成集群,啟動分布式存儲系統(化ssamlra);
[0050] (1-7-4)打開客戶端服務器,設置YCSB測試程序的IP地址列表為步驟(1-7-3)中設 置的所有測試虛擬機的IP地址,運行YCSB測試程序,記錄性能指標的測試結果如表3所示;
[0化1 ]
[0052] 表 3
[0053] (1-8)對步驟(1-7)得到的每一個性能指標(讀吞吐量、寫吞吐量、讀延遲、寫延遲 和最大客戶端并發數)的測試結果,構建性能模型并求解,具體步驟如下:
[0054] (1-8-1)構建性能模型的目標函數;設目標函數為¥ =。機(:此1?山,式中,¥為表3 中任一個性能指標,F為關于參數N、C、M、R、L的多項式函數,多項式展開后共有X項,記為X個 虛擬變量,對應X個待定系數;
[0055] (1-8-2)對表2中的所有參數組合,將計算展開后的X個虛擬變量的值作為自變量, 性能指標測試結果作為因變量(即Y),將所有的自變量與因變量組成訓練數據集,本實施例 中共有54組數據組成的訓練數據集;
[0056] (1-8-3)利用多元線性回歸方法對步驟(1-8-2)的訓練數據集進行回歸求解,得到 X個虛擬變量的待定系數的回歸值,從而得到Y = F(N,C,M,R,L)的具體表達式,即為步驟(1- 8-1)所選定性能指標的性能模型的表達式;
[0057] 本實施例的步驟(1-8-1)中,選定性能指標為寫吞吐量來構建性能模型,具體計算 步驟如下:
[005引構建性能模型的目標函數表達式為:
[0化9]
[0060] 式中,Y代表寫吞吐景,《項式展開后共有12項,記為12個虛擬變量
對應12個待定系數(cr''ci2);
[0061] ( 1-8-2)利用表2中的54組參數組合,計算展開后的12個虛擬變量
3值作為自變量,寫吞吐量性能指標測試結果作 為因變量(即Y),將所有的自變量與因變量組成訓練數據集;
[0062] (1-8-3)利用多元線性回歸方法對(1-8-2)的訓練數據集進行回歸求解,得到12個 虛擬變量的待定系數(cr-ci2)的回歸值,從而得到目標函數的具體表達式,即為W寫吞吐 量的性能模型。
[0063] (2)使用階段:對分布式存儲系統進行初始參數配置,計算其硬件參數和核屯、軟件 參數配置;具體步驟如下:
[0064] (2-1)用戶根據自己的需求分別確定表3中5個性能指標的目標值;
[0065] (2-2)根據表1的硬件參數和核屯、軟件參數取值范圍,對所有的性能指標,分別按 照按步驟(1)得到的性能模型計算所有參數取值組合(在本實施例中,一共有10X4X7X5 X3 = 4200個組合)的結果,并按照計算得到的對應性能指標的值從低到高進行排序;
[0066] (2-3)對于所有參數取值組合的性能指標計算結果,過濾掉小于步驟(2-1)中設定 的目標值的參數取值組合;
[0067] (2-4)對于剩下的參數取值組合,分別按照事先設定的價格函數依次計算其價格;
[0068] 本實施例中,采用的價格函數為:Price(N,C,M) = (45C+22M+4(l〇g2M-14))N
[0069] (2-5)對于步驟(2-4)的計算結果,選取價格最小即成本最低的參數組合作為分布 式存儲系統的參數配置結果;
[0070] (3)動態更新階段:動態更新性能模型,具體步驟如下:
[0071] (3-1)收集用戶對于使用階段得到的分布式存儲系統(Cassandra)的硬件參數和 核屯、軟件參數配置和對應的性能指標的反饋;
[0072] (3-2)對每一個性能指標(讀吞吐量、寫吞吐量、讀延遲、寫延遲和最大客戶端并發 數),更新其性能模型,具體步驟如下:
[0073] (3-2-1)按照步驟(1-8-1)中設定的目標函數表達式,利用用戶反饋的分布式存儲 系統的硬件參數和核屯、軟件參數配置,計算得到所有自變量的值,用戶反饋的性能指標作 為因變量(Y),得到更新訓練數據;
[0074] (3-2-2)將更新訓練數據添加到現有的訓練數據集中,得到更新后的訓練數據集;
[0075] (3-2-3)利用更新后訓練數據集,對步驟(1-8-1)設定的目標函數進行多元線性回 歸求解,得到和訓練階段中步驟(1-8-3)相同數目的虛擬變量的待定系數的回歸值,從而得 到目標函數的新的具體表達式,作為該性能指標新的性能模型,并替代原有的性能模型;
[0076] (3-3)重復步驟(3-1)至(3-5),按照用戶需求,對得到的新的性能模型不斷更新; 在后面的使用過程中,步驟(2)使用更新后的性能模型進行計算得到的結果將更加準確。
【主權項】
1. 一種分布式存儲系統的初始參數配置方法,其特征在于,該方法分為三個階段:訓練 階段、使用階段和動態更新階段;用戶先進行訓練階段得到性能模型,然后在使用階段將性 能模型用于解決分布式存儲系統的初始參數配置問題;之后,在動態更新階段,根據用戶的 反饋對性能模型進行動態更新。2. 如權利要求1所述的方法,其特征在于,該方法具體包括如下步驟: (1) 訓練階段:對分布式存儲系統進行測試,構建性能模型;具體步驟如下: (1-1)選取分布式存儲系統的硬件參數和核心軟件參數,并確定硬件參數和核心軟件 參數的取值范圍; (1-2)確定需要測試的步驟(1-1)中各參數的組合方案; (1-3)選定測試服務器; (1-4)在步驟(1-3)選定的測試服務器上安裝虛擬機平臺; (1-5)選定客戶端服務器,配置網絡環境,保證客戶端服務器和測試服務器在同一個網 段下,在客戶端服務器上安裝YCSB測試程序; (1-6)在步驟(1-4)建立的虛擬機平臺上創建種子虛擬機,安裝Linux操作系統以及必 要的軟件,安裝分布式存儲系統; (1-7)根據步驟(1-2)中確定的參數組合方案,對每一組合方案分別進行測試,并記錄 性能指標的測試結果,性能指標共5個,包括:讀吞吐量、寫吞吐量、讀延遲、寫延遲和最大客 戶端并發數; (1-8)對步驟(1-7)得到的每一個性能指標的測試結果,構建性能模型并求解; (2) 使用階段:對分布式存儲系統進行初始參數配置,計算其硬件參數和核心軟件參數 配置;具體步驟如下: (2-1)用戶根據自己的需求分別確定5個性能指標的目標值; (2-2)根據步驟(1-1)確定的硬件參數和核心軟件參數取值范圍,對所有的性能指標, 分別按照按步驟(1)得到的性能模型計算所有參數取值組合的結果,并按照計算得到的對 應性能指標的值從低到高進行排序; (2-3)對于所有參數取值組合的性能指標計算結果,過濾掉小于步驟(2-1)中設定的目 標值的參數取值組合; (2-4)對于剩下的參數取值組合,分別按照事先設定的價格函數依次計算其價格; (2-5)對于步驟(2-4)的計算結果,選取價格最小即成本最低的參數組合作為分布式存 儲系統的參數配置結果; (3) 動態更新階段:動態更新性能模型,具體步驟如下: (3-1)收集用戶對于使用階段得到的分布式存儲系統的硬件參數和核心軟件參數配置 和對應的性能指標的反饋; (3-2)對每一個性能指標更新性能模型; (3-3)重復步驟(3-1)至(3-2),按照用戶需求,對得到的新的性能模型不斷進行更新。3. 如權利要求2所述的方法,其特征在于,步驟(1-7)所述對參數組合進行測試并記錄 性能指標的測試結果,具體步驟如下: (1-7-1)通過步驟(1-6)建立的種子虛擬機分別復制出若干個相同虛擬機作為測試虛 擬機,測試虛擬機的個數等于步驟(1-2)中確定的所需測試組合中的節點數; (1-7-2)保證所有測試虛擬機的每一類資源相加總和不大于步驟(1-3)中選定的測試 服務器相對應的同類資源的總數; (1-7-3)修改所有測試虛擬機的IP地址使得它們互不相同,修改所有測試虛擬機上的 分布式存儲系統的必要參數,將所有的測試虛擬機組成集群,啟動分布式存儲系統; (1-7-4)打開客戶端服務器,設置YCSB測試程序的IP地址列表為步驟(1-7-3)中設置的 所有測試虛擬機的IP地址,運行YCSB測試程序,記錄性能指標的測試結果。4. 如權利要求2所述的方法,其特征在于,步驟(1-8)所述構建性能模型并求解, 具體步驟如下: (1-8-1)構建性能模型的目標函數;設目標函數為¥ = ?(叱(^,1?丄),式中,¥為所述5個 性能指標中的任一個性能指標,F為關于參數節點數N、CPU核心數C、內存大小Μ、副本數R和 提交日志大小L的多項式函數,多項式展開后共有X項,記為X個虛擬變量,對應X個待定系 數; (1-8-2)對步驟(1-2)中確定的所有參數組合,計算展開后的X個虛擬變量的值作為自 變量,性能指標測試結果作為因變量,將所有的自變量與因變量組成訓練數據集; (1-8-3)利用多元線性回歸方法對步驟(1-8-2)得到的訓練數據集進行回歸求解,得到 X個虛擬變量的待定系數的回歸值,從而得到Y = F(N,C,M,R,L)的具體表達式,即為步驟(1-8-1)所選定性能指標的性能模型的表達式。5. 如權利要求2所述的方法,其特征在于,步驟(3-2)所述對每一個性能指標更新性能 模型,具體步驟如下: (3-2-1)按照步驟(1-8)中設定的目標函數表達式,利用用戶反饋的分布式存儲系統的 硬件參數和核心軟件參數配置,計算得到所有自變量的值,用戶反饋的性能指標作為因變 量,得到更新訓練數據; (3-2-2)將更新訓練數據添加到現有的訓練數據集中,得到更新后的訓練數據集; (3-2-3)利用更新后訓練數據集,對步驟(1-8)設定的目標函數進行多元線性回歸求 解,得到和訓練階段中步驟(1-8)相同數目的虛擬變量的待定系數的回歸值,從而得到目標 函數的新的具體表達式,作為該性能指標新的性能模型,并替代原有的性能模型。
【文檔編號】G06F3/06GK106020719SQ201610318767
【公開日】2016年10月12日
【申請日】2016年5月13日
【發明人】彭澤武, 黃劍文, 王建民, 馮歆堯, 黃向東, 鐘雨, 龍明盛
【申請人】廣東電網有限責任公司信息中心, 清華大學