本發(fā)明涉及固態(tài)硬盤,尤其涉及一種ssd?namespace精細(xì)化qos的方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、ssd,中文含義為固態(tài)硬盤,是目前常用的存儲(chǔ)設(shè)備。
2、企業(yè)級(jí)ssd中,很多廠家實(shí)現(xiàn)了sr-iov功能,且少許廠家允許管理員根據(jù)預(yù)估的業(yè)務(wù)性能配置sr-iov各vf的最大iops和帶寬,而應(yīng)用層需要使用qos功能,需要將應(yīng)用部署在虛擬化平臺(tái),這種模式下應(yīng)用層能獲取與硬件媲美的存儲(chǔ)io性能,但無法直接使用物理?xiàng)l件下的計(jì)算和網(wǎng)絡(luò)性能。nvme?ssd使用namespace進(jìn)行細(xì)粒度的劃分和管理,實(shí)現(xiàn)了對(duì)存儲(chǔ)高效分配和調(diào)度,根據(jù)不同業(yè)務(wù)對(duì)存儲(chǔ)性能和質(zhì)量的不同需求,為每個(gè)namespace定義特定的qos需求,提高了存儲(chǔ)資源的利用率和用戶體驗(yàn),同時(shí)多個(gè)不同應(yīng)用能直接使用物理硬件資源,減少虛擬化層的開銷。然而現(xiàn)有技術(shù)的方案難以實(shí)現(xiàn)精準(zhǔn)的qos限流,亟需提出改進(jìn)方案。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種ssd?namespace精細(xì)化qos的方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì),旨在解決現(xiàn)有技術(shù)的方案難以實(shí)現(xiàn)精準(zhǔn)的qos限流的問題。
2、第一方面,本發(fā)明實(shí)施例提供了一種ssdnamespace精細(xì)化qos的方法,其包括:
3、基于限流配置信息初始化令牌桶的初始容量,其中,所述令牌桶包含令牌;
4、在單位時(shí)間內(nèi)將令牌桶內(nèi)的令牌分配給io請(qǐng)求,其中,若單位時(shí)間內(nèi)的io請(qǐng)求所需的令牌的數(shù)量小于或者等于令牌桶內(nèi)的令牌數(shù)量,則為單位時(shí)間內(nèi)的所有io請(qǐng)求均分配令牌;若單位時(shí)間內(nèi)的io請(qǐng)求所需的令牌的數(shù)量大于令牌桶內(nèi)的令牌數(shù)量,則為單位時(shí)間內(nèi)的部分io請(qǐng)求分配令牌,直到令牌桶內(nèi)的令牌全部被分配,所述部分io請(qǐng)求會(huì)獲取令牌桶當(dāng)前全部的令牌;
5、分配了令牌的io請(qǐng)求將會(huì)被處理,未分配令牌的io請(qǐng)求暫不處理,等待下一輪令牌補(bǔ)充后,再分配令牌并處理。
6、其進(jìn)一步的技術(shù)方案為,所述方法還包括:
7、每間隔單位時(shí)間為所述令牌桶補(bǔ)充令牌。
8、其進(jìn)一步的技術(shù)方案為,補(bǔ)充完令牌后,所述令牌桶包含的令牌數(shù)量小于或等于所述初始容量。
9、其進(jìn)一步的技術(shù)方案為,所述基于限流配置信息初始化令牌桶的初始容量,包括:
10、獲取完成單個(gè)io請(qǐng)求所需的時(shí)間;
11、通過公式初始容量=iops限流閾值*完成單個(gè)io請(qǐng)求所需的時(shí)間,計(jì)算所述初始容量。
12、其進(jìn)一步的技術(shù)方案為,所述獲取單個(gè)io請(qǐng)求所需的時(shí)間,包括:
13、根據(jù)預(yù)設(shè)的iops限流速率計(jì)算單個(gè)io請(qǐng)求所需的時(shí)間。
14、其進(jìn)一步的技術(shù)方案為,所述基于限流配置信息初始化令牌桶的初始容量,包括:
15、根據(jù)預(yù)設(shè)的帶寬限流速率獲取完成單位帶寬的時(shí)間;
16、通過公式初始容量=帶寬限流閾值*完成單位帶寬的時(shí)間,計(jì)算所述初始容量。
17、其進(jìn)一步的技術(shù)方案為,所述方法還包括:
18、判斷所述限流配置信息是否發(fā)生調(diào)整;
19、若所述限流配置信息發(fā)生調(diào)整,跳轉(zhuǎn)到所述基于限流配置信息初始化令牌桶的初始容量的步驟。
20、第二方面,本發(fā)明實(shí)施例還提供了一種ssd?namespace精細(xì)化qos的裝置,其包括用于執(zhí)行上述方法的單元。
21、第三方面,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,其包括存儲(chǔ)器及處理器,所述存儲(chǔ)器上存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述方法。
22、第四方面,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序當(dāng)被處理器執(zhí)行時(shí)可實(shí)現(xiàn)上述方法。
23、本發(fā)明實(shí)施例提供了一種ssd?namespace精細(xì)化qos的方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。其中,所述方法包括:基于限流配置信息初始化令牌桶的初始容量,其中,所述令牌桶包含令牌;在單位時(shí)間內(nèi)將令牌桶內(nèi)的令牌分配給io請(qǐng)求,其中,若單位時(shí)間內(nèi)的io請(qǐng)求所需的令牌的數(shù)量小于或者等于令牌桶內(nèi)的令牌數(shù)量,則為單位時(shí)間內(nèi)的所有io請(qǐng)求均分配令牌;若單位時(shí)間內(nèi)的io請(qǐng)求所需的令牌的數(shù)量大于令牌桶內(nèi)的令牌數(shù)量,則為單位時(shí)間內(nèi)的部分io請(qǐng)求分配令牌,直到令牌桶內(nèi)的令牌全部被分配,所述部分io請(qǐng)求會(huì)獲取令牌桶當(dāng)前全部的令牌;分配了令牌的io請(qǐng)求將會(huì)被處理,未分配令牌的io請(qǐng)求暫不處理,等待下一輪令牌補(bǔ)充后,再分配令牌并處理??梢?,通過設(shè)置令牌桶,實(shí)現(xiàn)在單位時(shí)間內(nèi)至多分配桶容量的令牌給io請(qǐng)求,同時(shí),僅對(duì)分配了令牌的io請(qǐng)求進(jìn)行處理,從而能夠?qū)崿F(xiàn)精準(zhǔn)的qos流量限制。
1.一種ssd?namespace精細(xì)化qos的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的ssd?namespace精細(xì)化qos的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的ssd?namespace精細(xì)化qos的方法,其特征在于,補(bǔ)充完令牌后,所述令牌桶包含的令牌數(shù)量小于或等于所述初始容量。
4.根據(jù)權(quán)利要求1所述的ssd?namespace精細(xì)化qos的方法,其特征在于,所述基于限流配置信息初始化令牌桶的初始容量,包括:
5.根據(jù)權(quán)利要求4所述的ssd?namespace精細(xì)化qos的方法,其特征在于,所述獲取單個(gè)io請(qǐng)求所需的時(shí)間,包括:
6.根據(jù)權(quán)利要求1所述的ssd?namespace精細(xì)化qos的方法,其特征在于,所述基于限流配置信息初始化令牌桶的初始容量,包括:
7.根據(jù)權(quán)利要求1所述的ssd?namespace精細(xì)化qos的方法,其特征在于,所述方法還包括:
8.一種ssd?namespace精細(xì)化qos的裝置,其特征在于,包括用于執(zhí)行如權(quán)利要求1-7任一項(xiàng)所述方法的單元。
9.一種計(jì)算機(jī)設(shè)備,其特征在于,所述計(jì)算機(jī)設(shè)備包括存儲(chǔ)器及處理器,所述存儲(chǔ)器上存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序當(dāng)被處理器執(zhí)行時(shí)可實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的方法。