本發(fā)明涉及儲(chǔ)存技術(shù)領(lǐng)域,尤其涉及一種I/O請(qǐng)求處理方法及存儲(chǔ)系統(tǒng)。
背景技術(shù):SAS(SerialAttachedSCSI,串行連接小型計(jì)算機(jī)系統(tǒng)接口)標(biāo)準(zhǔn)是使用SAS串行連接通訊的SCSI(SmallComputerSystemsInterface,小型計(jì)算機(jī)系統(tǒng)接口)設(shè)備之間交換信息的方式。在基于SAS標(biāo)準(zhǔn)的存儲(chǔ)系統(tǒng)中,出于提高帶寬利用率的考慮,根據(jù)各PHY(PhysicalLayer,物理通道)的忙碌程度,選擇空閑的PHY傳輸I/O(InputOutput,輸入輸出),使得大量的PHY處于忙碌的狀態(tài),從而提高了帶寬利用率。但上述技術(shù)至少存在如下技術(shù)問題:?jiǎn)渭兏鶕?jù)各PHY的忙碌程度為I/O分配PHY,這樣雖然提高了帶寬利用率,但在I/O大小不同,且各I/O的待訪問的存儲(chǔ)設(shè)備的設(shè)備類型也不同時(shí),存儲(chǔ)系統(tǒng)的IOPS(I/Opersecond,每秒處理I/O的數(shù)量)較低。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明通過提供一種I/O請(qǐng)求處理方法及存儲(chǔ)系統(tǒng),解決了現(xiàn)有技術(shù)中數(shù)據(jù)存儲(chǔ)系統(tǒng),存在的IOPS較低的問題。第一方面,本發(fā)明提供了一種輸入輸出I/O請(qǐng)求處理方法,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括控制器和多種不同類型的存儲(chǔ)設(shè)備,其中,所述多種不同類型的存儲(chǔ)設(shè)備通過串行連接小型計(jì)算機(jī)系統(tǒng)端口SAS與所述控制器進(jìn)行連接,所述SAS包括多個(gè)物理層通道PHY,所述方法包括:接收I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶有所述I/O的大小以及待訪問的地址;根據(jù)所述待訪問的地址確定待訪問的存儲(chǔ)設(shè)備的設(shè)備類型;根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY,其中,為所述類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期內(nèi)所述類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的,M為的正整數(shù);通過選擇的所述PHY將所述I/O發(fā)送給所述存儲(chǔ)設(shè)備。結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY,包括:根據(jù)確定的設(shè)備類型從所述多個(gè)PHY中確定M個(gè)PHY,其中,所述設(shè)備類型的所有存儲(chǔ)設(shè)備均可以通過所述M個(gè)PHY與所述控制器進(jìn)行通信;根據(jù)所述I/O的大小從所述M個(gè)PHY中選擇傳輸所述I/O的N個(gè)PHY,其中,所述N個(gè)PHY用于傳輸I/O大小滿足預(yù)設(shè)條件的I/O,N為正整數(shù),且N不大于M。結(jié)合第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的實(shí)施方式中,當(dāng)N為不小于2的正整數(shù)時(shí),所述方法還包括:根據(jù)所述N個(gè)PHY的忙碌程度,在所述N個(gè)PHY中選擇一個(gè)空閑的PHY作為傳輸所述I/O的PHY。結(jié)合第一方面、或第一方面的第一種可能的實(shí)施方式、或第一方面的第二種可能的實(shí)施方式,在第一方面的第三種可能的實(shí)施方式中,所述方法還包括:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)統(tǒng)計(jì)的前一個(gè)訪問周期內(nèi)訪問所述類型的存儲(chǔ)設(shè)備的不同大小的I/O的比例,在所述M個(gè)PHY中確定下一個(gè)訪問周期中處理不同大小I/O的PHY。結(jié)合第一方面、或第一方面的第一種可能的實(shí)施方式、或第一方面的第二種可能的實(shí)施方式,在第一方面的第四種可能的實(shí)施方式中,所述方法還包括:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)預(yù)設(shè)的策略在所述M個(gè)PHY確定處理不同大小I/O的PHY。第二方面,基于同一發(fā)明構(gòu)思,本發(fā)明提供了一種存儲(chǔ)系統(tǒng),所述存儲(chǔ)系統(tǒng)包括控制器和多種不同類型的存儲(chǔ)設(shè)備,其中,所述多種不同類型的存儲(chǔ)設(shè)備通過串行連接小型計(jì)算機(jī)系統(tǒng)端口SAS與所述控制器進(jìn)行連接,所述SAS包括多個(gè)物理層通道PHY,所述控制器用于:接收I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶有所述I/O的大小以及待訪問的地址;根據(jù)所述待訪問的地址確定待訪問的存儲(chǔ)設(shè)備的設(shè)備類型;根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY,其中,為所述類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期內(nèi)所述類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的,M為的正整數(shù);通過選擇的所述PHY將所述I/O發(fā)送給所述存儲(chǔ)設(shè)備。結(jié)合第二方面,在第二方面的第一種可能的實(shí)施方式中,所述控制器還用于:根據(jù)確定的設(shè)備類型從所述多個(gè)PHY中確定M個(gè)PHY,其中,所述設(shè)備類型的所有存儲(chǔ)設(shè)備均可以通過所述M個(gè)PHY與所述控制器進(jìn)行通信;根據(jù)所述I/O的大小從所述M個(gè)PHY中選擇傳輸所述I/O的N個(gè)PHY,其中,所述N個(gè)PHY用于傳輸I/O大小滿足預(yù)設(shè)條件的I/O,N為正整數(shù),且N不大于M。結(jié)合第二方面的第一種可能的實(shí)施方式,在第二方面的第二種可能的實(shí)施方式中,當(dāng)N為不小于2的正整數(shù)時(shí),所述控制器還用于:根據(jù)所述N個(gè)PHY的忙碌程度,在所述N個(gè)PHY中選擇一個(gè)空閑的PHY作為傳輸所述I/O的PHY。結(jié)合第二方面、或第二方面的第一種可能的實(shí)施方式、或第二方面的第二種可能的實(shí)施方式,在第二方面的第三種可能的實(shí)施方式中,所述控制器還用于:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)統(tǒng)計(jì)的前一個(gè)訪問周期內(nèi)訪問所述類型的存儲(chǔ)設(shè)備的不同大小的I/O的比例,在所述M個(gè)PHY中確定下一個(gè)訪問周期中處理不同大小I/O的PHY。結(jié)合第二方面、或第二方面的第一種可能的實(shí)施方式、或第二方面的第二種可能的實(shí)施方式,在第二方面的第四種可能的實(shí)施方式中,所述控制器還用于:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)預(yù)設(shè)的策略在所述M個(gè)PHY確定處理不同大小I/O的PHY。本發(fā)明至少具有如下技術(shù)效果或優(yōu)點(diǎn):本發(fā)明公開了一種I/O請(qǐng)求處理方法,應(yīng)用于存儲(chǔ)系統(tǒng)中的控制器中,存儲(chǔ)系統(tǒng)還包括多種不同類型存儲(chǔ)設(shè)備,其中,多種不同類型的存儲(chǔ)設(shè)備通過SAS端口與控制器進(jìn)行連接,SAS端口包括多個(gè)PHY,所述方法包括:接收I/O請(qǐng)求,I/O請(qǐng)求中攜帶有所述I/O的大小以及待訪問的地址;根據(jù)待訪問的地址確定待訪問的存儲(chǔ)設(shè)備的設(shè)備類型;根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY,其中,為所述類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的設(shè)備的數(shù)量在存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期內(nèi)所述類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的,M為正整數(shù)。在本發(fā)明中,根據(jù)I/O的大小和I/O的待訪問的存儲(chǔ)設(shè)備的設(shè)備類型,選擇傳輸I/O的PHY,能夠有效提高存儲(chǔ)系統(tǒng)的IOPS。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例中存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例中I/O請(qǐng)求處理方法的應(yīng)用場(chǎng)景示意圖;圖3為本發(fā)明實(shí)施例中I/O請(qǐng)求處理方法的流程圖;圖4為本發(fā)明實(shí)施例中步驟S13的細(xì)化流程圖。具體實(shí)施方式為使本發(fā)明一實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。實(shí)施例一本實(shí)施例提供了一種I/O請(qǐng)求處理方法,應(yīng)用于如圖1所示的存儲(chǔ)系統(tǒng)中,,該存儲(chǔ)系統(tǒng)包括控制器和多種不同類型的存儲(chǔ)設(shè)備,且這些不同類型的存儲(chǔ)設(shè)備通過SAS端口與控制器進(jìn)行連接,SAS端口包括多個(gè)PHY。在具體實(shí)施過程中,所述多種不同類型的存儲(chǔ)設(shè)備具體是指:存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)的類型不同。例如,如圖1所示,該存儲(chǔ)系統(tǒng)中包括兩種存儲(chǔ)設(shè)備(具體表示為:存儲(chǔ)設(shè)備1和存儲(chǔ)設(shè)備2),且這兩種存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)的類型不同,其中,存儲(chǔ)設(shè)備1的存儲(chǔ)介質(zhì)為SSD(SolidStateDisk,固態(tài)硬盤),存儲(chǔ)介質(zhì)2的存儲(chǔ)介質(zhì)為SASHDD(SerialAttachedSCSIHardDiskDrive,串行連接小型計(jì)算機(jī)系統(tǒng)接口硬盤)。此處,對(duì)于每種存儲(chǔ)設(shè)備的數(shù)量不做具體限制。在具體實(shí)施過程中,SAS端口包括多個(gè)PHY,控制器能夠通過這些PHY與存儲(chǔ)系統(tǒng)中的每個(gè)存儲(chǔ)設(shè)備進(jìn)行通信。例如,如圖2所示,該存儲(chǔ)系統(tǒng)中的SAS端口共包括10個(gè)PHY(具體表示為:PHY1、PHY2、PHY3、PHY4、PHY5、PHY6、PHY7、PHY8、PHY9、PHY0),且控制器能夠通過這10個(gè)PHY中的每個(gè)PHY向存儲(chǔ)系統(tǒng)中每個(gè)存儲(chǔ)設(shè)備下發(fā)I/O。如圖3所示,所述I/O請(qǐng)求處理方法應(yīng)用于控制器中,包括:步驟S11:接收I/O請(qǐng)求,I/O請(qǐng)求中攜帶有所述I/O的大小以及待訪問的地址。在具體實(shí)施過程中,該I/O請(qǐng)求可以是讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求,在該I/O請(qǐng)求為寫數(shù)據(jù)請(qǐng)求時(shí),該I/O請(qǐng)求中還攜帶有需要寫入到存儲(chǔ)設(shè)備中的待寫入數(shù)據(jù)。例如,如圖2所示,該I/O請(qǐng)求為讀數(shù)據(jù)請(qǐng)求,且該I/O請(qǐng)求的I/O的大小為4K,對(duì)應(yīng)的待訪問的地址為存儲(chǔ)設(shè)備1的地址。在具體實(shí)施過程中,所述I/O的大小具體指I/O請(qǐng)求中包含的總數(shù)據(jù)量的大小。在后文敘述中,將執(zhí)行步驟S11~步驟S14的訪問周期表示為第二訪問周期,將第二訪問周期的上一個(gè)訪問周期表示為第一訪問周期。步驟S12:根據(jù)待訪問的地址確定待訪問的存儲(chǔ)設(shè)備的設(shè)備類型。例如,如圖2所示,根據(jù)存儲(chǔ)設(shè)備的地址與存儲(chǔ)設(shè)備的設(shè)備類型的對(duì)應(yīng)關(guān)系,確定出所述I/O的待訪問的存儲(chǔ)設(shè)備的設(shè)備類型為SSD。步驟S13:根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY。其中,為所述類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的設(shè)備的數(shù)量在存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期內(nèi)所述類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的,M為正整數(shù)。例如,如圖2所示,SSD類型的存儲(chǔ)設(shè)備共配置了6個(gè)PHY(例如:PHY1~PHY6),則需要從這6個(gè)PHY中選擇用于傳輸所述I/O的PHY。其中,為SSD類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)存儲(chǔ)系統(tǒng)中PHY的總量、SSD類型的存儲(chǔ)設(shè)備的數(shù)量在存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期(即:第一訪問周期)內(nèi)SSD類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的。步驟S14:通過選擇的所述PHY將所述I/O發(fā)送給所述存儲(chǔ)設(shè)備。例如,如圖2所示,若選擇了PHY1為用于傳輸所述I/O的PHY,則通過PHY1將I/O發(fā)送給SSD類型的存儲(chǔ)設(shè)備(即:存儲(chǔ)設(shè)備1)。由于,相同類型的存儲(chǔ)設(shè)備對(duì)不同的大小的I/O的處理速率不同,且不同類型的存儲(chǔ)設(shè)備對(duì)相同大小的I/O速率也不同,所以,單純根據(jù)PHY當(dāng)前的忙碌程度為I/O分配PHY,雖然可以提高帶寬的利用率,但會(huì)導(dǎo)致存儲(chǔ)系統(tǒng)整體的IOPS較低。而在本實(shí)施例中,根據(jù)I/O的大小和I/O的待訪問的存儲(chǔ)設(shè)備的設(shè)備類型,選擇傳輸I/O的PHY,能夠有效提高存儲(chǔ)系統(tǒng)整體的IOPS。可選的,在本實(shí)施例中,如圖4所示,步驟S13,包括:步驟S21:根據(jù)確定的設(shè)備類型從多個(gè)PHY中確定M個(gè)PHY,其中,所述設(shè)備類型的所有存儲(chǔ)設(shè)備均可以通過所述M個(gè)PHY與控制器進(jìn)行通信。在具體實(shí)施過程中,在第一訪問周期結(jié)束前(或第二訪問周期開始前),控制器已經(jīng)為第二訪問周期內(nèi)每種類型的存儲(chǔ)設(shè)備配置了PHY。例如,如圖2所示,在該存儲(chǔ)系統(tǒng)中,在第一訪問周期結(jié)束前(或第二訪問周期開始前),控制器已經(jīng)為SSD類型的存儲(chǔ)設(shè)備配置了6個(gè)PHY(例如:PHY1、PHY2、PHY3、PHY4、PHY5、PHY6),為SASHDD類型的存儲(chǔ)設(shè)備配置了4個(gè)PHY(例如:PHY7、PHY8、PHY9、PHY0)。在確定待訪問的存儲(chǔ)設(shè)備為SSD類型時(shí),即可從該存儲(chǔ)系統(tǒng)的10個(gè)PHY中確定出DISK類型的存儲(chǔ)設(shè)備所預(yù)先配置的6個(gè)PHY。步驟S22:根據(jù)所述I/O的大小從M個(gè)PHY中選擇傳輸所述I/O的N個(gè)PHY,其中,所述N個(gè)PHY用于傳輸I/O大小滿足預(yù)設(shè)條件的I/O,N為正整數(shù),且N不大于M。在具體實(shí)施過程中,所述N個(gè)PHY專門用于傳輸I/O大小在一預(yù)設(shè)區(qū)間內(nèi)的I/O,基于待傳輸?shù)腎/O的大小所在的區(qū)間,即可從所述M個(gè)PHY中選擇傳輸該區(qū)間內(nèi)的I/O的N個(gè)PHY。例如,如圖2所示,控制器將為SSD類型的存儲(chǔ)設(shè)備分配的6個(gè)PHY進(jìn)一步劃分,將PHY1和PHY2用作傳輸區(qū)間0~16K內(nèi)的I/O,將PHY3和PHY4用作傳輸區(qū)間17K~32K內(nèi)的I/O,將PHY5和PHY6用作傳輸區(qū)間33K~48K內(nèi)的I/O,在待傳輸?shù)腎/O的大小為4K,基于待傳輸?shù)腎/O的大小確定其所在的區(qū)間為0~16K,則確定PHY1和PHY2為傳輸該4K的I/O的PHY。進(jìn)一步,當(dāng)N為不小于2的正整數(shù)時(shí),所述方法還包括:從所述N個(gè)PHY中任意選擇一個(gè)PHY作為傳輸所述I/O的PHY;例如,如圖2所示,從PHY1和PHY2中任意選擇一個(gè)PHY作為傳輸所述I/O的PHY;或根據(jù)所述N個(gè)PHY的忙碌程度,在所述N個(gè)PHY中選擇一個(gè)空閑的PHY作為傳輸所述I/O的PHY;例如,如圖2所示,若PHY2處于忙碌狀態(tài),PHY1處于空閑狀態(tài),則選擇PHY1作為傳輸所述I/O的PHY??蛇x的,在本實(shí)施例中,所述方法還包括:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)預(yù)設(shè)的策略在所述M個(gè)PHY確定處理不同大小I/O的PHY,例如,根據(jù)統(tǒng)計(jì)的前一個(gè)訪問周期(即:第一訪問周期)內(nèi)訪問所述類型的存儲(chǔ)設(shè)備的不同大小的I/O的比例,在所述M個(gè)PHY中確定下一個(gè)訪問周期(即:第二訪問周期)中處理不同大小I/O的PHY。在具體實(shí)施過程中,可以基于如下算法確定在第二訪問周期內(nèi),每種類型的存儲(chǔ)設(shè)備處理不同大小I/O的PHY。(1)、針對(duì)存儲(chǔ)系統(tǒng)中第一訪問周期內(nèi)的全部I/O,基于I/O大小的不同,確定P個(gè)區(qū)間,并對(duì)每個(gè)區(qū)間進(jìn)行編號(hào)。例如,0~16K為一個(gè)區(qū)間,編號(hào)為1;17K~32K為一個(gè)區(qū)間,編號(hào)為2,32K~48K為一個(gè)區(qū)間,編號(hào)為3,以此類推,獲得編號(hào)從1至P共P個(gè)區(qū)間。(2)、在存儲(chǔ)系統(tǒng)中共包含Q種不同類型的存儲(chǔ)設(shè)備時(shí),對(duì)每種類型的存儲(chǔ)設(shè)備進(jìn)行編號(hào)。例如,在存儲(chǔ)系統(tǒng)中共包括SDD、SASSDD、DISK、三種類型的存儲(chǔ)設(shè)備時(shí),將SDD類型的存儲(chǔ)設(shè)備編號(hào)為1、將SASSDD類型的存儲(chǔ)設(shè)備編號(hào)為2、將DISK類型的存儲(chǔ)設(shè)備編號(hào)為3,以此類推,獲得編號(hào)從1至Q共Q種存儲(chǔ)設(shè)備。(3)、確定第一訪問周期內(nèi)存儲(chǔ)系統(tǒng)接收到的全部I/O中每個(gè)I/O所在的區(qū)間、以及待訪問存儲(chǔ)設(shè)備的設(shè)備類型,將第一訪問周期內(nèi)存儲(chǔ)系統(tǒng)接收到的全部I/O分成P×Q類,并統(tǒng)計(jì)出每一類I/O數(shù)量,此處,將每一類I/O數(shù)量稱為每一類I/O的第一統(tǒng)計(jì)數(shù),并表示為IOcnt1(j,i)。其中,i為區(qū)間的編號(hào),取值范圍為1至P中的任一整數(shù);j為設(shè)備類型的編號(hào),取值范圍為1至Q之間的任一整數(shù)。(4)、由于不同類型的存儲(chǔ)設(shè)備對(duì)每一類I/O的處理速率不同,對(duì)每一類I/O分別設(shè)置影響因子,具體基于公式(a)確定:其中,a(j,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為j、且區(qū)間編號(hào)為i的I/O的影響因子;IPOS(j,i)為類型編號(hào)為j的存儲(chǔ)設(shè)備處理區(qū)間編號(hào)為i的I/O所能達(dá)到的最大IOPS。(5)、根據(jù)公式(b),確定所述P×Q類I/O中每一類I/O在第二周期內(nèi)分配PHY的數(shù)量占PHY總數(shù)的第一比例:其中,per1(j,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為j、且區(qū)間編號(hào)為i的I/O在第二周期分配的PHY的數(shù)量占PHY總數(shù)的第一比例,IOcnt1(j,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為j、且區(qū)間編號(hào)為i的I/O的第一統(tǒng)計(jì)數(shù)。(6)、根據(jù)公式(c),確定待訪問存儲(chǔ)設(shè)備的類型為所述Q種類型中每一種類型的I/O分配的PHY的數(shù)量占PHY總數(shù)的第二比例:其中,per2(j)為待訪問存儲(chǔ)設(shè)備的類型編號(hào)為j的I/O在第二訪問周期分配的PHY的數(shù)量占PHY總數(shù)的第二比例。(7)、根據(jù)公式(d),確定待訪問存儲(chǔ)設(shè)備的類型為所述Q種類型中每種類型的I/O在第二周期分配的PHY的數(shù)量:Num(j)=per2(j)×B………………(d)其中,Num(j)為待訪問存儲(chǔ)設(shè)備的類型編號(hào)為j的I/O在第二周期分配的PHY的數(shù)量,B為存儲(chǔ)系統(tǒng)中PHY的總數(shù)。(8)、若待訪問存儲(chǔ)設(shè)備的類型編號(hào)為x的I/O在第二周期分配的PHY的個(gè)數(shù)量大于等于2,則根據(jù)公式(e),得到待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O的第二統(tǒng)計(jì)數(shù):其中,IOcnt2(x,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O的第二統(tǒng)計(jì)數(shù);IOcnt1(x,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O的第一統(tǒng)計(jì)數(shù);IOsizemax(i)為區(qū)間編號(hào)為i的區(qū)間的上限值,例如,區(qū)間0~16K,則該區(qū)間的上限值為16K。(9)、根據(jù)公式(f),得到待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O在第二周期需分配的PHY的個(gè)數(shù)占PHY總數(shù)的第三比例:其中,per3(n,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O在第二周期需分配的PHY的個(gè)數(shù)占PHY總數(shù)的第三比例;IOcnt2(x,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O的第二統(tǒng)計(jì)數(shù)。(10)、根據(jù)公式(g),確定待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O在第二周期分配的PHY的數(shù)量:Num(x,i)=per3(x)×B………………(g)其中,Num(x,i)為待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)為x、且區(qū)間編號(hào)為i的I/O在第二周期需分配的PHY的個(gè)數(shù)。在本實(shí)施例中,由于將類型相同的I/O(即:待訪問存儲(chǔ)設(shè)備的設(shè)備類型編號(hào)相同、且區(qū)間編號(hào)相同的I/O)通過相同的PHY進(jìn)行發(fā)送,使得小I/O能夠優(yōu)先傳輸并存儲(chǔ),從而提高了存儲(chǔ)系統(tǒng)整體的IOPS性能。本發(fā)明實(shí)施例的應(yīng)用場(chǎng)景為:針對(duì)不同大小I/O混合,以及分級(jí)存儲(chǔ)中SSD和SASHDD混合應(yīng)用多種場(chǎng)景,能夠提升存儲(chǔ)系統(tǒng)整體性能,尤其是降低混合業(yè)務(wù)下處理小I/O時(shí)的時(shí)延。本發(fā)明實(shí)施例的適用范圍:采用SAS后端的所有存儲(chǔ)系統(tǒng)。下面給出一組實(shí)驗(yàn)數(shù)據(jù),如表一所示,在該實(shí)驗(yàn)中,采用兩種業(yè)務(wù)模型對(duì)傳統(tǒng)方案和本發(fā)明實(shí)施例中的方案進(jìn)行對(duì)比,其中,傳統(tǒng)方案為根據(jù)各PHY的忙碌程度為I/O分配PHY通道。從表一中實(shí)驗(yàn)數(shù)據(jù)可知,采用本發(fā)明實(shí)施例的兩種業(yè)務(wù)模型下的搭建的原型機(jī),IOPS提升10%~30%左右。表一上述本申請(qǐng)實(shí)施例中的技術(shù)方案,至少具有如下的技術(shù)效果或優(yōu)點(diǎn):在本實(shí)施例中,采用根據(jù)I/O大小和存儲(chǔ)介質(zhì)的不同動(dòng)態(tài)的分配PHY,從而使得PHY的利用效率更高,提高了存儲(chǔ)系統(tǒng)整體的IOPS性能。實(shí)施例二基于同一發(fā)明構(gòu)思,如圖1所示,本實(shí)施例提供了一種存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)包括控制器和多種不同類型的存儲(chǔ)設(shè)備,其中,多種不同類型的存儲(chǔ)設(shè)備通過SAS端口與所述控制器進(jìn)行連接,SAS端口包括多個(gè)PHY,控制器用于:接收I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶有所述I/O的大小以及待訪問的地址;根據(jù)待訪問的地址確定待訪問的存儲(chǔ)設(shè)備的設(shè)備類型;根據(jù)所述I/O的大小以及確定的設(shè)備類型從為所述類型的存儲(chǔ)設(shè)備配置的M個(gè)PHY中選擇傳輸所述I/O的PHY,其中,為所述類型的存儲(chǔ)設(shè)備配置的PHY是根據(jù)存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的設(shè)備的數(shù)量在存儲(chǔ)系統(tǒng)中所占的比例以及在前一個(gè)訪問周期內(nèi)所述類型的存儲(chǔ)設(shè)備接收的I/O的大小來確定的,M為的正整數(shù);通過選擇的所述PHY將所述I/O發(fā)送給所述存儲(chǔ)設(shè)備。在本發(fā)明中,根據(jù)I/O的大小和I/O的待訪問的存儲(chǔ)設(shè)備的設(shè)備類型,選擇傳輸I/O的PHY,能夠有效提高存儲(chǔ)系統(tǒng)的IOPS??蛇x的,在本實(shí)施例中,所述控制器還用于:根據(jù)確定的設(shè)備類型從所述多個(gè)PHY中確定M個(gè)PHY,其中,所述設(shè)備類型的所有存儲(chǔ)設(shè)備均可以通過所述M個(gè)PHY與所述控制器進(jìn)行通信;根據(jù)所述I/O的大小從所述M個(gè)PHY中選擇傳輸所述I/O的N個(gè)PHY,其中,所述N個(gè)PHY用于傳輸I/O大小滿足預(yù)設(shè)條件的I/O,N為正整數(shù),且N不大于M??蛇x的,在本實(shí)施例中,當(dāng)N為不小于2的正整數(shù)時(shí),所述控制器還用于:根據(jù)所述N個(gè)PHY的忙碌程度,在所述N個(gè)PHY中選擇一個(gè)空閑的PHY作為傳輸所述I/O的PHY。可選的,在本實(shí)施例中,所述控制器還用于:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)統(tǒng)計(jì)的前一個(gè)訪問周期內(nèi)訪問所述類型的存儲(chǔ)設(shè)備的不同大小的I/O的比例,在所述M個(gè)PHY中確定下一個(gè)訪問周期中處理不同大小I/O的PHY??蛇x的,在本實(shí)施例中,所述控制器還用于:根據(jù)所述存儲(chǔ)系統(tǒng)中PHY的總量、所述類型的存儲(chǔ)設(shè)備的數(shù)量在所述存儲(chǔ)系統(tǒng)中所占的比例為所述類型的存儲(chǔ)設(shè)備分配所述M個(gè)PHY;根據(jù)預(yù)設(shè)的策略在所述M個(gè)PHY確定處理不同大小I/O的PHY。本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制。本申請(qǐng)所提供的實(shí)施例僅僅是示意性的。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。在本發(fā)明實(shí)施例、權(quán)利要求以及附圖中揭示的特征可以獨(dú)立存在也可以組合存在。