本申請(qing)涉(she)及計算機存(cun)儲(chu)領域,并且更具體地(di),涉(she)及數據(ju)存(cun)儲(chu)的方(fang)法和存(cun)儲(chu)系統。
背景技術:
鏡(jing)(jing)像(xiang)是(shi)冗余的(de)(de)一(yi)種類型,一(yi)個磁(ci)盤(pan)上(shang)的(de)(de)數(shu)據(ju)在另一(yi)個磁(ci)盤(pan)上(shang)存(cun)在一(yi)個完全相同的(de)(de)副(fu)本即為鏡(jing)(jing)像(xiang)。在服務器上(shang)常用鏡(jing)(jing)像(xiang)操作是(shi)組建(jian)獨(du)立磁(ci)盤(pan)冗余陣(zhen)列(Redundant Array Of Independent Disks,RAID)1,RAID1是(shi)將一(yi)個兩(liang)塊硬(ying)(ying)盤(pan)所構成的(de)(de)RAID磁(ci)盤(pan)陣(zhen)列,其容(rong)(rong)量僅等于一(yi)個硬(ying)(ying)盤(pan)的(de)(de)容(rong)(rong)量,因為另一(yi)塊只是(shi)當(dang)作數(shu)據(ju)“鏡(jing)(jing)像(xiang)”。
在(zai)分布(bu)式存儲系統(tong)中,為了達到可靠性的要求,選(xuan)擇在(zai)節(jie)點(dian)(dian)間使用鏡像(xiang)機制。將(jiang)本地數(shu)據,復制一(yi)份(fen)在(zai)鏡像(xiang)節(jie)點(dian)(dian)保(bao)存,在(zai)故障情況下,快速恢(hui)復業務(wu)。
在現有技術(shu)中,待存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)數據發送(song)到鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian),鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian)需要(yao)為待存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)數據配置內存(cun)(cun)(cun)(cun)(cun)(cun)索引(yin)(yin),內存(cun)(cun)(cun)(cun)(cun)(cun)索引(yin)(yin)用于方便讀取(qu)該鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian)存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)的(de)數據;之后鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian)需要(yao)申請(qing)資(zi)源空間,并設置資(zi)源空間的(de)存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)地址與內存(cun)(cun)(cun)(cun)(cun)(cun)索引(yin)(yin)的(de)映射關系;最后將待存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)數據存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)到存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)地址對(dui)應的(de)資(zi)源空間中。現有技術(shu)鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian)存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)待存(cun)(cun)(cun)(cun)(cun)(cun)儲(chu)數據的(de)上述操作對(dui)鏡(jing)像(xiang)(xiang)節點(dian)(dian)(dian)的(de)中央處理(li)器(Central Processing Unit,CPU)的(de)占用較高。
技術實現要素:
本(ben)申請實施例提供一種數(shu)據(ju)存(cun)儲的方法和(he)存(cun)儲系統(tong),能夠(gou)減少鏡像存(cun)儲設備存(cun)儲數(shu)據(ju)對(dui)CPU的占用。
第(di)(di)(di)一(yi)方面,本申(shen)請(qing)實施例提供了一(yi)種數據存(cun)儲(chu)(chu)的方法,該(gai)(gai)(gai)方法應用于(yu)包括第(di)(di)(di)一(yi)存(cun)儲(chu)(chu)設備(bei)和至少(shao)一(yi)個(ge)第(di)(di)(di)二(er)存(cun)儲(chu)(chu)設備(bei)的存(cun)儲(chu)(chu)系(xi)統(tong),其中,該(gai)(gai)(gai)第(di)(di)(di)二(er)存(cun)儲(chu)(chu)設備(bei)為該(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)儲(chu)(chu)設備(bei)的鏡(jing)像存(cun)儲(chu)(chu)設備(bei),該(gai)(gai)(gai)方法包括:第(di)(di)(di)一(yi)存(cun)儲(chu)(chu)設備(bei)接收寫請(qing)求消息,該(gai)(gai)(gai)寫請(qing)求消息攜帶目標(biao)(biao)數據;該(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)儲(chu)(chu)設備(bei)根據該(gai)(gai)(gai)目標(biao)(biao)數據,生成目標(biao)(biao)日(ri)志,該(gai)(gai)(gai)目標(biao)(biao)日(ri)志包括該(gai)(gai)(gai)目標(biao)(biao)數據和用于(yu)標(biao)(biao)識該(gai)(gai)(gai)目標(biao)(biao)數據的標(biao)(biao)識信息;該(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)儲(chu)(chu)設備(bei)向該(gai)(gai)(gai)第(di)(di)(di)二(er)存(cun)儲(chu)(chu)設備(bei)發送該(gai)(gai)(gai)目標(biao)(biao)日(ri)志;該(gai)(gai)(gai)第(di)(di)(di)二(er)存(cun)儲(chu)(chu)設備(bei)存(cun)儲(chu)(chu)該(gai)(gai)(gai)目標(biao)(biao)日(ri)志,且(qie)該(gai)(gai)(gai)存(cun)儲(chu)(chu)該(gai)(gai)(gai)目標(biao)(biao)日(ri)志不需要配置內存(cun)索引。
本申請(qing)實(shi)施(shi)例應用于包(bao)括第(di)(di)(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)和至少(shao)一(yi)個第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)的(de)存(cun)(cun)(cun)(cun)儲(chu)系(xi)統中(zhong)(zhong),且第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)為一(yi)類(lei)第(di)(di)(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)的(de)鏡像存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)。第(di)(di)(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)接收(shou)寫請(qing)求消息,寫請(qing)求消息中(zhong)(zhong)攜帶(dai)待寫的(de)數(shu)據(ju)(表示(shi)為目(mu)標(biao)數(shu)據(ju)),根(gen)據(ju)該目(mu)標(biao)數(shu)據(ju),生(sheng)成(cheng)相(xiang)應的(de)目(mu)標(biao)日(ri)志,并(bing)向第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)發(fa)送(song)該目(mu)標(biao)日(ri)志將該目(mu)標(biao)日(ri)志直(zhi)接存(cun)(cun)(cun)(cun)儲(chu)到(dao)第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)中(zhong)(zhong),由于該目(mu)標(biao)日(ri)志包(bao)括用于表示(shi)該目(mu)標(biao)數(shu)據(ju)的(de)標(biao)識信息,這樣第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)存(cun)(cun)(cun)(cun)儲(chu)該目(mu)標(biao)日(ri)志時并(bing)不需(xu)要創(chuang)建內存(cun)(cun)(cun)(cun)索(suo)引(yin),相(xiang)比現有(you)技術中(zhong)(zhong),第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)需(xu)要配置(zhi)內存(cun)(cun)(cun)(cun)索(suo)引(yin)而言,本申請(qing)可(ke)以(yi)直(zhi)接存(cun)(cun)(cun)(cun)儲(chu)該目(mu)標(biao)日(ri)志,從而節省(sheng)了第(di)(di)(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)(she)(she)(she)備(bei)(bei)配置(zhi)內存(cun)(cun)(cun)(cun)索(suo)引(yin)時對CPU的(de)占用。
在一(yi)些可能的實現方式中(zhong),該(gai)(gai)方法還包(bao)括:該(gai)(gai)第(di)(di)二存(cun)儲(chu)(chu)(chu)設備在完(wan)成(cheng)存(cun)儲(chu)(chu)(chu)該(gai)(gai)目(mu)標日志時,向該(gai)(gai)第(di)(di)一(yi)存(cun)儲(chu)(chu)(chu)設備發送存(cun)儲(chu)(chu)(chu)完(wan)成(cheng)消息(xi);該(gai)(gai)第(di)(di)一(yi)存(cun)儲(chu)(chu)(chu)設備存(cun)儲(chu)(chu)(chu)該(gai)(gai)目(mu)標日志;該(gai)(gai)第(di)(di)一(yi)存(cun)儲(chu)(chu)(chu)設備在完(wan)成(cheng)該(gai)(gai)目(mu)標日志的存(cun)儲(chu)(chu)(chu)和接收到該(gai)(gai)存(cun)儲(chu)(chu)(chu)完(wan)成(cheng)消息(xi)之后,發送寫請求響(xiang)應消息(xi)。
第一(yi)存(cun)(cun)儲(chu)設(she)備完(wan)成寫(xie)(xie)入目(mu)標日志,且接收(shou)到第二存(cun)(cun)儲(chu)設(she)備發送(song)的存(cun)(cun)儲(chu)完(wan)成消(xiao)息(xi)之(zhi)后,向(xiang)IO設(she)備發送(song)寫(xie)(xie)請(qing)求(qiu)響應(ying)消(xiao)息(xi),這樣(yang)避免現(xian)有技術(shu)中需要等待將目(mu)標數據存(cun)(cun)儲(chu)到內存(cun)(cun)索(suo)引對應(ying)的資源空間(jian)之(zhi)后才(cai)能(neng)向(xiang)IO設(she)備返(fan)回寫(xie)(xie)請(qing)求(qiu)響應(ying)消(xiao)息(xi),從(cong)而減少(shao)了發出(chu)寫(xie)(xie)請(qing)求(qiu)到收(shou)到寫(xie)(xie)請(qing)求(qiu)響應(ying)消(xiao)息(xi)的時延。
在(zai)一(yi)些可能的實現方式(shi)中(zhong),該(gai)(gai)(gai)第二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)(bei)包括(kuo)多個(ge)資(zi)源(yuan)空間(jian)(jian)(jian);其(qi)中(zhong),該(gai)(gai)(gai)第二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)(bei)存(cun)(cun)儲(chu)該(gai)(gai)(gai)目(mu)標(biao)(biao)(biao)日(ri)志(zhi)包括(kuo):該(gai)(gai)(gai)第二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)(bei)根據該(gai)(gai)(gai)標(biao)(biao)(biao)識信息,確定存(cun)(cun)儲(chu)該(gai)(gai)(gai)目(mu)標(biao)(biao)(biao)日(ri)志(zhi)的第一(yi)資(zi)源(yuan)空間(jian)(jian)(jian),該(gai)(gai)(gai)第一(yi)資(zi)源(yuan)空間(jian)(jian)(jian)為該(gai)(gai)(gai)第二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)(bei)的多個(ge)資(zi)源(yuan)空間(jian)(jian)(jian)中(zhong)滿足(zu)該(gai)(gai)(gai)目(mu)標(biao)(biao)(biao)日(ri)志(zhi)的資(zi)源(yuan)需求的任一(yi)資(zi)源(yuan)空間(jian)(jian)(jian);該(gai)(gai)(gai)第二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)(bei)將該(gai)(gai)(gai)目(mu)標(biao)(biao)(biao)日(ri)志(zhi)存(cun)(cun)儲(chu)到該(gai)(gai)(gai)第一(yi)資(zi)源(yuan)空間(jian)(jian)(jian)中(zhong)。
第(di)(di)(di)(di)二存(cun)(cun)(cun)儲(chu)(chu)設備(bei)根據該標識信(xin)息選擇合(he)適的(de)資(zi)源空間(表(biao)示為(wei)(wei)第(di)(di)(di)(di)一資(zi)源空間),將該目標日(ri)志(zhi)(zhi)存(cun)(cun)(cun)儲(chu)(chu)到第(di)(di)(di)(di)二存(cun)(cun)(cun)儲(chu)(chu)設備(bei)的(de)第(di)(di)(di)(di)一資(zi)源空間中。此外(wai),第(di)(di)(di)(di)二存(cun)(cun)(cun)儲(chu)(chu)設備(bei)可以(yi)根據標識信(xin)息識別(bie)目標數據,以(yi)目標日(ri)志(zhi)(zhi)的(de)形(xing)式(shi)可以(yi)將目標數據按(an)照順序進行有(you)規律的(de)存(cun)(cun)(cun)儲(chu)(chu),這樣第(di)(di)(di)(di)二存(cun)(cun)(cun)儲(chu)(chu)設備(bei)可以(yi)不需(xu)要為(wei)(wei)目標數據配(pei)置內存(cun)(cun)(cun)索(suo)引,從而使(shi)得(de)節省了第(di)(di)(di)(di)二存(cun)(cun)(cun)儲(chu)(chu)設備(bei)的(de)CPU占用(yong)。
在一(yi)些可能的(de)(de)(de)實現(xian)方式中(zhong),該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)包(bao)括(kuo)多個(ge)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian);該(gai)(gai)(gai)(gai)方法還包(bao)括(kuo):該(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)獲取(qu)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)的(de)(de)(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)地(di)址和(he)(he)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)的(de)(de)(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)容(rong)量,該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)為該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)的(de)(de)(de)多個(ge)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)中(zhong)任一(yi)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian);該(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)根(gen)據該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)的(de)(de)(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)容(rong)量和(he)(he)該(gai)(gai)(gai)(gai)標(biao)識信息(xi)(xi),確定(ding)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)是否滿足(zu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)的(de)(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)需(xu)求;該(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)在該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)滿足(zu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)的(de)(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)需(xu)求時,根(gen)據RDMA編碼方式、該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)和(he)(he)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)的(de)(de)(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)地(di)址,生成RDMA消息(xi)(xi),該(gai)(gai)(gai)(gai)RDMA消息(xi)(xi)包(bao)括(kuo)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)的(de)(de)(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)地(di)址和(he)(he)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi);其(qi)中(zhong),該(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)向(xiang)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)發(fa)送該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)包(bao)括(kuo):該(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)向(xiang)該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)的(de)(de)(de)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)發(fa)送該(gai)(gai)(gai)(gai)RDMA消息(xi)(xi);其(qi)中(zhong),該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)包(bao)括(kuo):該(gai)(gai)(gai)(gai)第(di)(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)的(de)(de)(de)第(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)空間(jian)(jian)(jian)(jian)根(gen)據該(gai)(gai)(gai)(gai)RDMA消息(xi)(xi),存(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)日(ri)(ri)志(zhi)。
第(di)(di)二存(cun)(cun)儲設(she)(she)備(bei)在將目(mu)標日(ri)志存(cun)(cun)儲到第(di)(di)二資源空(kong)間(jian)之后,就可(ke)以(yi)向第(di)(di)一(yi)存(cun)(cun)儲設(she)(she)備(bei)返回存(cun)(cun)儲完成消息。本申請實施例相(xiang)比(bi)第(di)(di)二存(cun)(cun)儲設(she)(she)備(bei)接收目(mu)標日(ri)志,并需要(yao)為目(mu)標日(ri)志選擇合適的(de)(de)資源空(kong)間(jian),能(neng)夠更進一(yi)步節省了第(di)(di)二存(cun)(cun)儲設(she)(she)備(bei)的(de)(de)CPU的(de)(de)占用。
在一(yi)些可能的(de)(de)(de)實(shi)現(xian)方式(shi)中,該(gai)(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)設(she)(she)備(bei)獲取第(di)(di)二(er)資源(yuan)(yuan)(yuan)(yuan)空間(jian)的(de)(de)(de)存(cun)(cun)儲(chu)地址和(he)該(gai)(gai)(gai)第(di)(di)二(er)資源(yuan)(yuan)(yuan)(yuan)空間(jian)的(de)(de)(de)存(cun)(cun)儲(chu)容量(liang)包(bao)括:該(gai)(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)設(she)(she)備(bei)向該(gai)(gai)(gai)第(di)(di)二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)發送資源(yuan)(yuan)(yuan)(yuan)請(qing)求(qiu)(qiu)消息,該(gai)(gai)(gai)資源(yuan)(yuan)(yuan)(yuan)請(qing)求(qiu)(qiu)消息用于請(qing)求(qiu)(qiu)存(cun)(cun)儲(chu)該(gai)(gai)(gai)目標日志的(de)(de)(de)該(gai)(gai)(gai)第(di)(di)二(er)資源(yuan)(yuan)(yuan)(yuan)空間(jian);該(gai)(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)設(she)(she)備(bei)接收該(gai)(gai)(gai)第(di)(di)二(er)存(cun)(cun)儲(chu)設(she)(she)備(bei)根據該(gai)(gai)(gai)資源(yuan)(yuan)(yuan)(yuan)請(qing)求(qiu)(qiu)消息發送的(de)(de)(de)資源(yuan)(yuan)(yuan)(yuan)請(qing)求(qiu)(qiu)響(xiang)應消息,該(gai)(gai)(gai)資源(yuan)(yuan)(yuan)(yuan)請(qing)求(qiu)(qiu)響(xiang)應消息攜帶該(gai)(gai)(gai)第(di)(di)二(er)資源(yuan)(yuan)(yuan)(yuan)空間(jian)的(de)(de)(de)存(cun)(cun)儲(chu)地址和(he)該(gai)(gai)(gai)第(di)(di)二(er)資源(yuan)(yuan)(yuan)(yuan)空間(jian)的(de)(de)(de)存(cun)(cun)儲(chu)容量(liang)。
第(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)可以(yi)向第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)發送資(zi)源(yuan)(yuan)請(qing)求(qiu)消(xiao)息(xi),第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)在(zai)多個(ge)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)中(zhong)選(xuan)擇任意一(yi)個(ge)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)(表(biao)示為(wei)第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)),并向第(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)發送資(zi)源(yuan)(yuan)請(qing)求(qiu)響應(ying)(ying)消(xiao)息(xi),且在(zai)資(zi)源(yuan)(yuan)請(qing)求(qiu)響應(ying)(ying)消(xiao)息(xi)中(zhong)攜帶該第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)地(di)址(zhi)和該第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)的(de)剩余(yu)容量(liang)(liang),從(cong)而使得(de)第(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)能夠為(wei)目(mu)標(biao)日志選(xuan)擇合(he)適的(de)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)。第(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)可以(yi)只獲取(qu)一(yi)次第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)的(de)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)的(de)地(di)址(zhi)和存(cun)(cun)(cun)儲(chu)(chu)容量(liang)(liang),直至(zhi)該資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)沒有剩余(yu)資(zi)源(yuan)(yuan),或(huo)者剩余(yu)資(zi)源(yuan)(yuan)不能夠滿足(zu)當前待寫入數據的(de)大(da)小,然后才進行下一(yi)次獲取(qu)第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)的(de)資(zi)源(yuan)(yuan)空(kong)(kong)(kong)(kong)間(jian)(jian)的(de)地(di)址(zhi)和存(cun)(cun)(cun)儲(chu)(chu)容量(liang)(liang)。
在一(yi)(yi)(yi)些可能(neng)的(de)實(shi)現方式中(zhong),該(gai)(gai)(gai)方法還包括:該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備為該(gai)(gai)(gai)目(mu)標(biao)數(shu)據(ju)(ju)(ju)配置內(nei)存(cun)(cun)(cun)索引;該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備根(gen)據(ju)(ju)(ju)該(gai)(gai)(gai)內(nei)存(cun)(cun)(cun)索引,確定存(cun)(cun)(cun)儲(chu)該(gai)(gai)(gai)目(mu)標(biao)數(shu)據(ju)(ju)(ju)的(de)該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備的(de)資源(yuan)空(kong)間,其中(zhong),該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備的(de)資源(yuan)空(kong)間的(de)存(cun)(cun)(cun)儲(chu)地址(zhi)對應于該(gai)(gai)(gai)內(nei)存(cun)(cun)(cun)索引;該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備將該(gai)(gai)(gai)目(mu)標(biao)數(shu)據(ju)(ju)(ju)寫入該(gai)(gai)(gai)第(di)一(yi)(yi)(yi)存(cun)(cun)(cun)儲(chu)設(she)(she)(she)備的(de)資源(yuan)空(kong)間中(zhong)。
第一存(cun)(cun)儲(chu)設備(bei)(bei)為目(mu)(mu)標(biao)數(shu)據配(pei)置內(nei)存(cun)(cun)索(suo)(suo)引,以及(ji)為目(mu)(mu)標(biao)數(shu)據申請(qing)(qing)存(cun)(cun)儲(chu)資(zi)(zi)源(yuan)(表示(shi)為第一存(cun)(cun)儲(chu)設備(bei)(bei)的(de)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)),且(qie)配(pei)置已經申請(qing)(qing)的(de)存(cun)(cun)儲(chu)資(zi)(zi)源(yuan)的(de)存(cun)(cun)儲(chu)地址(zhi)(zhi)與內(nei)存(cun)(cun)索(suo)(suo)引的(de)映(ying)射關系(xi),該映(ying)射關系(xi)用于后續第一存(cun)(cun)儲(chu)設備(bei)(bei)能夠(gou)根據內(nei)存(cun)(cun)索(suo)(suo)引讀取到對(dui)應(ying)的(de)存(cun)(cun)儲(chu)地址(zhi)(zhi)中(zhong)存(cun)(cun)儲(chu)的(de)數(shu)據,最后將目(mu)(mu)標(biao)數(shu)據寫入(ru)到存(cun)(cun)儲(chu)地址(zhi)(zhi)對(dui)應(ying)的(de)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)中(zhong)。這(zhe)樣第一存(cun)(cun)儲(chu)設備(bei)(bei)將目(mu)(mu)標(biao)數(shu)據存(cun)(cun)儲(chu)到有內(nei)存(cun)(cun)索(suo)(suo)引對(dui)應(ying)的(de)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)中(zhong),并不會延長影響返回寫請(qing)(qing)求(qiu)響應(ying)消息的(de)時間(jian)。
第二方面(mian),本申請實施(shi)例提(ti)供了一(yi)種存(cun)(cun)儲系統,該(gai)存(cun)(cun)儲系統可(ke)以實現(xian)上述(shu)方面(mian)所(suo)(suo)涉(she)及方法中第一(yi)存(cun)(cun)儲設備和(he)第二存(cun)(cun)儲設備所(suo)(suo)執行的(de)功能,所(suo)(suo)述(shu)功能可(ke)以通(tong)過硬件(jian)實現(xian),也可(ke)以通(tong)過硬件(jian)執行相應的(de)軟(ruan)(ruan)件(jian)實現(xian)。所(suo)(suo)述(shu)硬件(jian)或(huo)軟(ruan)(ruan)件(jian)包括一(yi)個或(huo)多個上述(shu)功能相應的(de)單元或(huo)模塊。
第(di)三方(fang)(fang)面,提供了(le)一種存儲(chu)系統,該(gai)(gai)存儲(chu)系統的(de)結構中包括(kuo)存儲(chu)器(qi)(qi),該(gai)(gai)處理器(qi)(qi)被(bei)配(pei)置為支持上述方(fang)(fang)面所涉及方(fang)(fang)法(fa)中第(di)一存儲(chu)設備(bei)(bei)和第(di)二(er)存儲(chu)設備(bei)(bei)所執(zhi)行的(de)功能。該(gai)(gai)通信(xin)接口(kou)用(yong)于(yu)支持該(gai)(gai)第(di)一存儲(chu)設備(bei)(bei)、第(di)二(er)存儲(chu)設備(bei)(bei)與其它網元之間的(de)通信(xin)。該(gai)(gai)存儲(chu)器(qi)(qi)用(yong)于(yu)與處理器(qi)(qi)耦合,其保存該(gai)(gai)第(di)一存儲(chu)設備(bei)(bei)、該(gai)(gai)第(di)二(er)存儲(chu)設備(bei)(bei)必要(yao)的(de)程序指令和數據。
第四方(fang)面(mian),提供了一種計(ji)算(suan)機(ji)存儲(chu)介質,該計(ji)算(suan)機(ji)存儲(chu)介質中(zhong)存儲(chu)有程(cheng)(cheng)序(xu)代(dai)碼,該程(cheng)(cheng)序(xu)代(dai)碼用于指示執(zhi)(zhi)行(xing)上(shang)述存儲(chu)系統所(suo)用的計(ji)算(suan)機(ji)軟件指令,其包含(han)用于執(zhi)(zhi)行(xing)上(shang)述方(fang)面(mian)所(suo)設計(ji)的程(cheng)(cheng)序(xu)。
基于上(shang)述技術(shu)方(fang)案,第一存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)通過接收攜帶目(mu)標(biao)數據(ju)的(de)寫(xie)請求消息(xi),根據(ju)該(gai)(gai)寫(xie)請求消息(xi)中(zhong)的(de)目(mu)標(biao)數據(ju)生成(cheng)包括該(gai)(gai)目(mu)標(biao)數據(ju)和用于標(biao)識(shi)該(gai)(gai)目(mu)標(biao)數據(ju)的(de)標(biao)識(shi)信息(xi)的(de)目(mu)標(biao)日(ri)(ri)志(zhi),并(bing)向該(gai)(gai)第二(er)存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)發送該(gai)(gai)目(mu)標(biao)日(ri)(ri)志(zhi),第二(er)存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)存(cun)(cun)儲(chu)(chu)該(gai)(gai)目(mu)標(biao)日(ri)(ri)志(zhi),且存(cun)(cun)儲(chu)(chu)該(gai)(gai)目(mu)標(biao)日(ri)(ri)志(zhi)不(bu)需要配置(zhi)內(nei)存(cun)(cun)索引,這(zhe)樣第一存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)生成(cheng)包括標(biao)識(shi)目(mu)標(biao)數據(ju)的(de)標(biao)識(shi)信息(xi)的(de)目(mu)標(biao)日(ri)(ri)志(zhi),第二(er)存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)可以存(cun)(cun)儲(chu)(chu)目(mu)標(biao)日(ri)(ri)志(zhi)不(bu)需要配置(zhi)內(nei)存(cun)(cun)索引,從(cong)而減少了對(dui)第二(er)存(cun)(cun)儲(chu)(chu)設(she)(she)備(bei)(bei)的(de)CPU的(de)占用。
附圖說明
為(wei)了更清楚地(di)說明本(ben)申請實(shi)施(shi)例(li)的(de)(de)技(ji)(ji)術方案,下面將(jiang)對實(shi)施(shi)例(li)或現有技(ji)(ji)術描述(shu)中所(suo)需要使(shi)用的(de)(de)附(fu)(fu)(fu)圖(tu)(tu)作簡單地(di)介紹,顯而易見地(di),下面描述(shu)中的(de)(de)附(fu)(fu)(fu)圖(tu)(tu)僅僅是本(ben)申請的(de)(de)一些(xie)實(shi)施(shi)例(li),對于本(ben)領域普通技(ji)(ji)術人(ren)員來講,在(zai)不付出(chu)創(chuang)造性(xing)勞動的(de)(de)前提下,還可以(yi)根據(ju)這些(xie)附(fu)(fu)(fu)圖(tu)(tu)獲得其他的(de)(de)附(fu)(fu)(fu)圖(tu)(tu)。
圖1是本申請(qing)實施例(li)的存儲系統的架構(gou)示意圖;
圖(tu)2是本申請實施例(li)的(de)存儲節點和(he)管(guan)理節點的(de)結構示意圖(tu);
圖3是本申請實施例Cache模塊的工作(zuo)流程圖;
圖(tu)4a、圖(tu)4b和圖(tu)4c是本申請實施例的日志格式的示意圖(tu);
圖5是(shi)本(ben)申請實施例(li)的(de)資源空間的(de)結構(gou)示意圖;
圖6是現有(you)技術數據存儲的方法的示意性(xing)流程(cheng)圖;
圖7是本申請(qing)一個(ge)實施例的數據存儲的方法的示意性流程圖;
圖(tu)8是本申請另一(yi)個(ge)實施(shi)例的數據存儲(chu)的方法的示意性流(liu)程(cheng)圖(tu);
圖(tu)9是本申請實施例的(de)存(cun)儲系(xi)統的(de)示意性框圖(tu);
圖10是本申(shen)請實(shi)施例(li)的(de)存(cun)儲系統(tong)的(de)結構示(shi)意圖。
具體實施方式
下(xia)(xia)面(mian)將(jiang)結(jie)合本(ben)申請(qing)實(shi)施例中的(de)附圖,對(dui)本(ben)申請(qing)實(shi)施例中的(de)技(ji)術方案(an)進行(xing)清(qing)楚(chu)、完(wan)整(zheng)地描述。顯然,所描述的(de)實(shi)施例是本(ben)申請(qing)一(yi)部分實(shi)施例,而不(bu)是全部的(de)實(shi)施例。基(ji)于本(ben)申請(qing)中的(de)實(shi)施例,本(ben)領域普通技(ji)術人員在沒有(you)做出創造性勞動前(qian)提下(xia)(xia)所獲(huo)得(de)的(de)所有(you)其他(ta)實(shi)施例,都屬于本(ben)申請(qing)保護的(de)范(fan)圍。
圖1示出(chu)(chu)了本申請實(shi)施例的(de)(de)存儲(chu)(chu)系統的(de)(de)架構示意圖。如(ru)圖1所(suo)示,該(gai)存儲(chu)(chu)系統包括節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)和(he)(he)網絡。其(qi)中(zhong),節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)分為用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)(可以有多(duo)(duo)個用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian):用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)200a、用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)200b、用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)200c和(he)(he)用戶(hu)(hu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)200d)、存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)(可以有多(duo)(duo)個存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian):存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)100a、存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)100b、存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)100c和(he)(he)存儲(chu)(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)100d)和(he)(he)管理節(jie)(jie)(jie)(jie)點(dian)(dian)(dian)(dian)(dian)(dian)(dian)300。網絡分為用于(yu)承載用戶(hu)(hu)輸入(ru)輸出(chu)(chu)(Input/Output,IO)數(shu)據(ju)(ju)的(de)(de)前端網絡400和(he)(he)用于(yu)承載業務數(shu)據(ju)(ju)的(de)(de)后端網絡500。本申請實(shi)施例中(zhong)的(de)(de)業務數(shu)據(ju)(ju)可以是指支持RDMA的(de)(de)鏡(jing)像數(shu)據(ju)(ju)。
用(yong)戶節(jie)點(dian)(dian)用(yong)于在前端(duan)接(jie)收用(yong)戶IO數據(ju),通(tong)過前端(duan)網(wang)絡轉發給(gei)存(cun)(cun)儲節(jie)點(dian)(dian)。存(cun)(cun)儲節(jie)點(dian)(dian)用(yong)于存(cun)(cun)儲用(yong)戶業務數據(ju),同時高速緩沖存(cun)(cun)儲器(Cache)功能也在存(cun)(cun)儲節(jie)點(dian)(dian)上(shang)。管理節(jie)點(dian)(dian)用(yong)于負(fu)責(ze)維護存(cun)(cun)儲節(jie)點(dian)(dian)間(jian)的鏡像關系。
圖(tu)2示出了存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)和管(guan)(guan)理(li)節(jie)(jie)(jie)(jie)點(dian)(dian)的(de)結構示意圖(tu)。其中(zhong)(zhong),存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)可以(yi)區(qu)分IO的(de)主(zhu)存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(以(yi)圖(tu)1中(zhong)(zhong)的(de)100a為例(li))和IO的(de)鏡(jing)(jing)像存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)(以(yi)圖(tu)1中(zhong)(zhong)的(de)100b為例(li))。IO的(de)主(zhu)節(jie)(jie)(jie)(jie)點(dian)(dian)100a主(zhu)要包括(kuo)前端(duan)(duan)IO模(mo)(mo)塊(kuai)(kuai)110a、后(hou)端(duan)(duan)磁盤(pan)模(mo)(mo)塊(kuai)(kuai)120a和Cache模(mo)(mo)塊(kuai)(kuai)130a。前端(duan)(duan)IO模(mo)(mo)塊(kuai)(kuai)110a用于負(fu)責用戶(hu)IO接收、IO流控以(yi)及IO錯誤處理(li)。后(hou)端(duan)(duan)磁盤(pan)模(mo)(mo)塊(kuai)(kuai)120a用于提(ti)供用戶(hu)業務(wu)數據通過磁盤(pan)讀寫功能。Cache模(mo)(mo)塊(kuai)(kuai)130a分為日志層131a、資(zi)源層132a和本地存(cun)(cun)(cun)(cun)儲(chu)133a。管(guan)(guan)理(li)節(jie)(jie)(jie)(jie)點(dian)(dian)300包括(kuo)鏡(jing)(jing)像管(guan)(guan)理(li)模(mo)(mo)塊(kuai)(kuai)310,鏡(jing)(jing)像管(guan)(guan)理(li)模(mo)(mo)塊(kuai)(kuai)310用于在管(guan)(guan)理(li)節(jie)(jie)(jie)(jie)點(dian)(dian)上(shang)負(fu)責維護節(jie)(jie)(jie)(jie)點(dian)(dian)間鏡(jing)(jing)像關(guan)系,并(bing)通知Cache模(mo)(mo)塊(kuai)(kuai)130。鏡(jing)(jing)像存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)100b的(de)結構與主(zhu)存(cun)(cun)(cun)(cun)儲(chu)節(jie)(jie)(jie)(jie)點(dian)(dian)100a的(de)結構相同,在此不再(zai)贅述。
圖3示出了Cache模塊130a的內(nei)部工作流程。日志層(ceng)(ceng)131a接收(shou)前端IO模塊110a發送(song)(song)的IO數(shu)據,并將(jiang)IO數(shu)據轉換為日志形式(shi)(例如(ru),預寫日志(Write-ahead logging,WAL log)格式(shi)的數(shu)據)發送(song)(song)給資(zi)(zi)源(yuan)層(ceng)(ceng)132a;資(zi)(zi)源(yuan)層(ceng)(ceng)132a負責資(zi)(zi)源(yuan)(例如(ru),非易失性的雙(shuang)列內(nei)存模塊(Non-Volatile Dual In-line Memory Module,NVDIMM)資(zi)(zi)源(yuan))的空間(jian)分配,并將(jiang)日志發送(song)(song)到(dao)(dao)鏡像(xiang)節點110b進(jin)行(xing)存儲(chu)。主(zhu)存儲(chu)節點100a接收(shou)到(dao)(dao)存儲(chu)完成(cheng)消息,本(ben)地(di)存儲(chu)133a在本(ben)地(di)存儲(chu)日志。
為(wei)了方便理解本(ben)申(shen)請實施(shi)例,首先在此介(jie)紹本(ben)申(shen)請實施(shi)例之(zhi)前引入(ru)以下(xia)幾(ji)個要素。
遠程直接(jie)(jie)數(shu)據(ju)存(cun)(cun)取(Remote Direct Memory Access,RDMA)通過(guo)(guo)網絡將數(shu)據(ju)直接(jie)(jie)傳(chuan)入(ru)鏡像(xiang)(xiang)節點的(de)(de)存(cun)(cun)儲(chu)區(qu),而不(bu)對(dui)操作(zuo)系統造成(cheng)任何影(ying)響,這(zhe)樣就(jiu)可以(yi)減少鏡像(xiang)(xiang)端(duan)的(de)(de)CPU的(de)(de)開(kai)銷。具體RDMA實現是(shi)通過(guo)(guo)發送(song)方和接(jie)(jie)收(shou)方針對(dui)目(mu)(mu)的(de)(de)緩存(cun)(cun)區(qu)的(de)(de)位置進(jin)行協(xie)商(shang),與傳(chuan)統的(de)(de)TCP連接(jie)(jie)不(bu)同(tong)的(de)(de)是(shi)要(yao)對(dui)傳(chuan)統傳(chuan)輸控制協(xie)議(Transmission Control Protocol,TCP)頭部數(shu)據(ju)結(jie)構進(jin)行一(yi)(yi)(yi)(yi)些改(gai)動以(yi)支(zhi)持RDMA協(xie)議,主(zhu)要(yao)是(shi)增加(jia)一(yi)(yi)(yi)(yi)個(ge)表示目(mu)(mu)的(de)(de)地址(zhi)的(de)(de)字段(即生成(cheng)RDMA消息)。RDMA讀寫操作(zuo)要(yao)求(qiu)源端(duan)和目(mu)(mu)的(de)(de)端(duan)都(dou)知(zhi)道(dao)目(mu)(mu)的(de)(de)緩存(cun)(cun)區(qu)的(de)(de)位置和大小,如(ru)果從主(zhu)機的(de)(de)內存(cun)(cun)通過(guo)(guo)RDMA向另一(yi)(yi)(yi)(yi)個(ge)主(zhu)機內存(cun)(cun)寫一(yi)(yi)(yi)(yi)塊數(shu)據(ju),則必須提供目(mu)(mu)的(de)(de)緩存(cun)(cun)區(qu)的(de)(de)地址(zhi),并確保這(zhe)個(ge)緩存(cun)(cun)區(qu)足夠(gou)大來接(jie)(jie)收(shou)這(zhe)塊數(shu)據(ju)。
WAL log日志(zhi)格式分為(wei)三(san)種(zhong)類型:簡單(dan)型日志(zhi)、復合型日志(zhi)和命令型日志(zhi)。
簡(jian)單(dan)型日(ri)(ri)(ri)志(zhi)只針對元(yuan)數(shu)(shu)(shu)據(ju)(即是描述數(shu)(shu)(shu)據(ju)屬性的(de)(de)信息,用(yong)來指(zhi)示(shi)(shi)存儲(chu)位置、歷史數(shu)(shu)(shu)據(ju)、資(zi)源(yuan)查找、文(wen)件記錄等功能(neng))的(de)(de)一(yi)個(ge)(ge)(ge)對象的(de)(de)日(ri)(ri)(ri)志(zhi),或數(shu)(shu)(shu)據(ju)的(de)(de)一(yi)個(ge)(ge)(ge)文(wen)件的(de)(de)日(ri)(ri)(ri)志(zhi)。在一(yi)個(ge)(ge)(ge)寫IO只包含(han)一(yi)個(ge)(ge)(ge)Cache模塊的(de)(de)數(shu)(shu)(shu)據(ju)時(shi),通常使用(yong)簡(jian)單(dan)型日(ri)(ri)(ri)志(zhi)格(ge)式(shi)。簡(jian)單(dan)型日(ri)(ri)(ri)志(zhi)格(ge)式(shi)如圖(tu)4a所示(shi)(shi),包括魔術字(zi)部(bu)分(fen)(fen)(fen)、數(shu)(shu)(shu)據(ju)部(bu)分(fen)(fen)(fen)、日(ri)(ri)(ri)志(zhi)頭(tou)部(bu)分(fen)(fen)(fen)和(he)日(ri)(ri)(ri)志(zhi)尾部(bu)分(fen)(fen)(fen)。魔術字(zi)部(bu)分(fen)(fen)(fen)存儲(chu)一(yi)組魔術字(zi)表示(shi)(shi)日(ri)(ri)(ri)志(zhi)開(kai)始,日(ri)(ri)(ri)志(zhi)頭(tou)中存放(fang)元(yuan)數(shu)(shu)(shu)據(ju),日(ri)(ri)(ri)志(zhi)尾中存放(fang)日(ri)(ri)(ri)志(zhi)的(de)(de)循環冗余碼校驗(Cyclic Redundancy Check,CRC)校驗信息。
復(fu)(fu)(fu)合(he)型日(ri)志格式如圖4b所示,在(zai)一(yi)(yi)個寫IO包含多(duo)(duo)個Cache模塊的數(shu)(shu)(shu)據(ju)時,需要轉換為多(duo)(duo)條簡(jian)單(dan)日(ri)志,再對(dui)多(duo)(duo)條簡(jian)單(dan)日(ri)志封裝一(yi)(yi)個復(fu)(fu)(fu)合(he)日(ri)志頭(tou)(tou),組合(he)成一(yi)(yi)條復(fu)(fu)(fu)合(he)型日(ri)志,來保(bao)證這多(duo)(duo)條log的一(yi)(yi)致性。這條復(fu)(fu)(fu)合(he)型日(ri)志的數(shu)(shu)(shu)據(ju)部分(fen)存放著多(duo)(duo)條簡(jian)單(dan)日(ri)志,具(ju)體日(ri)志個數(shu)(shu)(shu)及數(shu)(shu)(shu)據(ju)長度(du)在(zai)日(ri)志頭(tou)(tou)中保(bao)存。
命(ming)令(ling)型(xing)(xing)日(ri)(ri)志(zhi)格式如(ru)圖(tu)4c所示(shi),當一個寫命(ming)令(ling)或者其他命(ming)令(ling)的(de)IO下發數據(ju),這(zhe)部分IO攜(xie)帶的(de)數據(ju)將不(bu)需要在Cache中(zhong)保存,為了鏡像(xiang)節點能夠(gou)感知到,也需要寫入一條日(ri)(ri)志(zhi),描述(shu)實現數據(ju)的(de)位置以及大(da)小。其中(zhong),命(ming)令(ling)型(xing)(xing)日(ri)(ri)志(zhi)頭中(zhong)描述(shu)失效(xiao)范圍(wei)信(xin)息。
資源層的(de)資源分(fen)(fen)配是指將鏡像的(de)空(kong)間分(fen)(fen)為多個段(duan)(Segment)(通常使(shi)用8M NVDIMM空(kong)間)來管理。每個Segment可以存(cun)放(fang)多條(tiao)WAL log(如圖(tu)5所示),WAL log采用連續存(cun)放(fang)方式,每條(tiao)WAL log首尾相連。魔術字部分(fen)(fen)存(cun)儲一(yi)組魔術字表示一(yi)個Segment的(de)開始,日(ri)志頭(tou)記(ji)錄Segmnet狀態是否可用以及Segment序(xu)號等(deng)描(miao)述信息。
圖6示(shi)出了現有技術數據存(cun)儲的(de)方法,具體流程如下所示(shi):
101、IO前端(duan)模塊向本地(di)緩(huan)存模塊發送(song)寫請求消息,該寫請求消息攜帶待寫的目標數據。
102、本地(di)緩存(cun)模(mo)塊(kuai)接收(shou)到該目標(biao)數據(ju)(ju)(ju),并將(jiang)該目標(biao)數據(ju)(ju)(ju)發送給(gei)鏡像緩存(cun)模(mo)塊(kuai)以使鏡像緩存(cun)模(mo)塊(kuai)存(cun)儲該目標(biao)數據(ju)(ju)(ju)。
103、鏡像緩存(cun)(cun)模塊(kuai)接收該(gai)(gai)目(mu)標(biao)(biao)數(shu)據(ju),并為該(gai)(gai)目(mu)標(biao)(biao)數(shu)據(ju)配(pei)置內(nei)存(cun)(cun)索(suo)引(yin),該(gai)(gai)內(nei)存(cun)(cun)索(suo)引(yin)用于方(fang)便(bian)讀取該(gai)(gai)目(mu)標(biao)(biao)數(shu)據(ju),具體(ti)地(di),鏡像緩存(cun)(cun)模塊(kuai)可以先在(zai)已有的(de)索(suo)引(yin)表查詢是否存(cun)(cun)在(zai)該(gai)(gai)目(mu)標(biao)(biao)數(shu)據(ju)對應(ying)的(de)內(nei)存(cun)(cun)索(suo)引(yin),若(ruo)不存(cun)(cun)在(zai),為該(gai)(gai)目(mu)標(biao)(biao)數(shu)據(ju)創(chuang)建相應(ying)的(de)內(nei)存(cun)(cun)索(suo)引(yin);
104、鏡(jing)像緩存(cun)模塊根據(ju)(ju)(ju)內存(cun)索(suo)引(yin)為目(mu)(mu)標(biao)數據(ju)(ju)(ju)申請存(cun)儲(chu)資源(yuan)(yuan)(即(ji)配置(zhi)合(he)適的(de)用(yong)于存(cun)儲(chu)目(mu)(mu)標(biao)數據(ju)(ju)(ju)的(de)資源(yuan)(yuan)空間(jian)),且設(she)置(zhi)目(mu)(mu)標(biao)數據(ju)(ju)(ju)的(de)內存(cun)索(suo)引(yin)與申請的(de)資源(yuan)(yuan)空間(jian)的(de)存(cun)儲(chu)地址(zhi)的(de)映射關系,使得根據(ju)(ju)(ju)索(suo)引(yin)以及索(suo)引(yin)對(dui)應的(de)存(cun)儲(chu)地址(zhi)能夠讀取存(cun)儲(chu)空間(jian)中的(de)數據(ju)(ju)(ju)。
105、鏡(jing)像存儲模塊(kuai)將(jiang)目標數據存儲到申請的(de)資源空間中。
106、鏡像緩(huan)存(cun)模(mo)塊完成(cheng)目標(biao)數據的存(cun)儲后(hou),向本(ben)地緩(huan)存(cun)模(mo)塊發送存(cun)儲完成(cheng)消(xiao)息(xi)。
107、本(ben)地緩存(cun)(cun)(cun)(cun)(cun)模塊(kuai)接收到鏡(jing)像緩存(cun)(cun)(cun)(cun)(cun)模塊(kuai)發送的(de)存(cun)(cun)(cun)(cun)(cun)儲完成消(xiao)息后,可以開始在本(ben)地緩存(cun)(cun)(cun)(cun)(cun)中(zhong)進行(xing)存(cun)(cun)(cun)(cun)(cun)儲目(mu)標數(shu)據(ju)(ju),首先為(wei)目(mu)標數(shu)據(ju)(ju)配(pei)置內存(cun)(cun)(cun)(cun)(cun)索引。具體流程(cheng)與鏡(jing)像節點存(cun)(cun)(cun)(cun)(cun)儲數(shu)據(ju)(ju)的(de)流程(cheng)(如上(shang)述步驟103和步驟104)相同,在此不進行(xing)贅述。
108、本(ben)地緩存模塊為目標數(shu)據申請存儲資(zi)源。
109、本地(di)緩存模塊將目標數據存儲到申請的資(zi)源空(kong)間中。
110、本(ben)地緩存(cun)模塊(kuai)完成目標數據的存(cun)儲后(hou),向IO前端模塊(kuai)發送寫請(qing)求響應消息(xi)。
因此,現有技術中,鏡(jing)(jing)像(xiang)緩存模塊存儲鏡(jing)(jing)像(xiang)數據(ju)(ju)時需(xu)要經(jing)過為目(mu)標(biao)數據(ju)(ju)配置內存索引、申請存儲資(zi)源(yuan)(yuan)(鏡(jing)(jing)像(xiang)緩存模塊需(xu)要根據(ju)(ju)目(mu)標(biao)數據(ju)(ju)的大小、類型等各種屬性找到合適的資(zi)源(yuan)(yuan)空間(jian),并(bing)配置資(zi)源(yuan)(yuan)空間(jian)的存儲地(di)址與內存索引的映射關系)和(he)并(bing)將(jiang)目(mu)標(biao)數據(ju)(ju)存儲到鏡(jing)(jing)像(xiang)緩存模塊的這些步驟都需(xu)要CPU參與,從而(er)使得鏡(jing)(jing)像(xiang)存儲節點的CPU占(zhan)用較高。
本(ben)申請實施例應用(yong)于第一存(cun)(cun)儲(chu)設(she)備正常工作的情況下(xia),第一存(cun)(cun)儲(chu)設(she)備存(cun)(cun)儲(chu)數(shu)據(ju)以(yi)及第二存(cun)(cun)儲(chu)設(she)備存(cun)(cun)儲(chu)數(shu)據(ju)的場景。
應理解(jie),本申(shen)請(qing)實(shi)(shi)施例的第一(yi)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)對應于(yu)上(shang)述圖(tu)(tu)2的主存(cun)(cun)儲(chu)(chu)節(jie)點100a,第二(er)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)對應于(yu)上(shang)述圖(tu)(tu)2的鏡(jing)像(xiang)存(cun)(cun)儲(chu)(chu)節(jie)點100b;或者(zhe)說本申(shen)請(qing)實(shi)(shi)施例的第一(yi)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)就是(shi)上(shang)述圖(tu)(tu)2的主存(cun)(cun)儲(chu)(chu)節(jie)點100a,第二(er)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)就是(shi)上(shang)述圖(tu)(tu)2的鏡(jing)像(xiang)存(cun)(cun)儲(chu)(chu)節(jie)點100b;或者(zhe)該第一(yi)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)和第二(er)存(cun)(cun)儲(chu)(chu)設(she)備(bei)(bei)(bei)分別為(wei)具有上(shang)述Cache模(mo)塊130a功能的設(she)備(bei)(bei)(bei)和上(shang)述Cache模(mo)塊130b功能的設(she)備(bei)(bei)(bei),本申(shen)請(qing)對此不進行限定。
圖7示出了根(gen)據本(ben)申請一(yi)個實施例的(de)(de)數據存(cun)(cun)儲(chu)的(de)(de)方法(fa)的(de)(de)示意性流程(cheng)圖。本(ben)申請實施例中的(de)(de)第(di)一(yi)存(cun)(cun)儲(chu)設(she)備(bei)可以是圖1中的(de)(de)存(cun)(cun)儲(chu)節(jie)點(dian)(dian)100a、100b、100c和100d中的(de)(de)任意一(yi)個存(cun)(cun)儲(chu)節(jie)點(dian)(dian),第(di)二存(cun)(cun)儲(chu)設(she)備(bei)可以是通(tong)過(guo)管(guan)理(li)節(jie)點(dian)(dian)300確定的(de)(de)主存(cun)(cun)儲(chu)節(jie)點(dian)(dian)的(de)(de)鏡像存(cun)(cun)儲(chu)節(jie)點(dian)(dian)。
701、第(di)一(yi)存(cun)儲設備接收寫請求消(xiao)息(xi),該(gai)寫請求消(xiao)息(xi)攜帶目標數據。
本申請實施例應(ying)用于包括第一(yi)(yi)(yi)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)和至少一(yi)(yi)(yi)個第二存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)的(de)存儲(chu)(chu)(chu)系統中,且第二存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)為(wei)(wei)一(yi)(yi)(yi)類第一(yi)(yi)(yi)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)的(de)鏡(jing)像(xiang)(xiang)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)。此(ci)外,第一(yi)(yi)(yi)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)也可以是(shi)第二存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)的(de)鏡(jing)像(xiang)(xiang)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei),也就是(shi)說,第一(yi)(yi)(yi)存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)和第二存儲(chu)(chu)(chu)設(she)(she)(she)備(bei)(bei)(bei)可以互(hu)為(wei)(wei)鏡(jing)像(xiang)(xiang)存設(she)(she)(she)備(bei)(bei)(bei),本申請對(dui)此(ci)不進行限定。
第(di)一(yi)存儲(chu)設(she)(she)備可(ke)(ke)以是圖(tu)2中的(de)(de)Cache模塊130a,Cache模塊130a接收(shou)IO前端模塊110a發送的(de)(de)寫請(qing)求(qiu)消(xiao)(xiao)息,但本(ben)申請(qing)并不限于此。第(di)一(yi)存儲(chu)設(she)(she)備接收(shou)寫請(qing)求(qiu)消(xiao)(xiao)息,寫請(qing)求(qiu)消(xiao)(xiao)息中攜帶待(dai)寫的(de)(de)數(shu)據(表示為目標(biao)數(shu)據),該目標(biao)數(shu)據可(ke)(ke)以是需要(yao)同一(yi)個(ge)緩存處理(li)的(de)(de)數(shu)據,也可(ke)(ke)以是需要(yao)多個(ge)緩存單元處理(li)的(de)(de)數(shu)據;或(huo)者該目標(biao)數(shu)據不需要(yao)在(zai)緩存中保存。
應注意,該第一存儲(chu)設(she)(she)備可(ke)以包括多個內(nei)存區域、處理器、控(kong)制(zhi)器、且控(kong)制(zhi)器上運行著操(cao)作系統等,第二存儲(chu)設(she)(she)備可(ke)以與第一存儲(chu)設(she)(she)備相同,也可(ke)以不同,本申請對此不進(jin)行限(xian)定。
702、第一存儲設備(bei)根據該目(mu)標數據,生成相應(ying)的目(mu)標日志。
該目(mu)標(biao)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)包(bao)括目(mu)標(biao)數(shu)(shu)據(ju)(ju)和(he)用(yong)于標(biao)識(shi)目(mu)標(biao)數(shu)(shu)據(ju)(ju)的(de)(de)標(biao)識(shi)信(xin)(xin)(xin)息(xi)(xi),該標(biao)識(shi)信(xin)(xin)(xin)息(xi)(xi)為指(zhi)示目(mu)標(biao)數(shu)(shu)據(ju)(ju)屬(shu)性(xing)的(de)(de)各種信(xin)(xin)(xin)息(xi)(xi)。例如,日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)格(ge)式如圖(tu)4a、圖(tu)4b和(he)圖(tu)4c所示,以(yi)簡(jian)單型日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)為例,簡(jian)單型日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)中(zhong)包(bao)括魔術(shu)字(zi)部分(fen)(fen)(fen)、數(shu)(shu)據(ju)(ju)部分(fen)(fen)(fen)和(he)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)頭(tou)部分(fen)(fen)(fen)和(he)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)尾(wei)部分(fen)(fen)(fen)。存儲設備能夠根據(ju)(ju)魔術(shu)字(zi)部分(fen)(fen)(fen)識(shi)別日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)的(de)(de)開始;而日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)頭(tou)中(zhong)存儲元(yuan)(yuan)數(shu)(shu)據(ju)(ju),元(yuan)(yuan)數(shu)(shu)據(ju)(ju)用(yong)于指(zhi)示數(shu)(shu)據(ju)(ju)存儲位置、歷史數(shu)(shu)據(ju)(ju)、資源查找(zhao)、文(wen)件記錄等功能;日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)尾(wei)部分(fen)(fen)(fen)存放(fang)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)的(de)(de)CRC校(xiao)驗信(xin)(xin)(xin)息(xi)(xi),保證了(le)數(shu)(shu)據(ju)(ju)的(de)(de)可(ke)靠性(xing)。因此,本(ben)申(shen)請實(shi)施例中(zhong)的(de)(de)目(mu)標(biao)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)中(zhong)包(bao)括的(de)(de)標(biao)識(shi)信(xin)(xin)(xin)息(xi)(xi)可(ke)以(yi)是(shi)日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)頭(tou)、日(ri)志(zhi)(zhi)(zhi)(zhi)(zhi)尾(wei)以(yi)及(ji)魔術(shu)字(zi)部分(fen)(fen)(fen)中(zhong)存儲的(de)(de)所有信(xin)(xin)(xin)息(xi)(xi)。
日(ri)志(zhi)(zhi)(zhi)格式包括簡單(dan)型日(ri)志(zhi)(zhi)(zhi)、復合型日(ri)志(zhi)(zhi)(zhi)和命令(ling)型日(ri)志(zhi)(zhi)(zhi)。若(ruo)目(mu)(mu)(mu)標(biao)數(shu)據(ju)需(xu)要(yao)一(yi)(yi)個(ge)緩(huan)存(cun)處理(li)(li),則(ze)第一(yi)(yi)存(cun)儲(chu)(chu)存(cun)儲(chu)(chu)設備(bei)將(jiang)該目(mu)(mu)(mu)標(biao)數(shu)據(ju)轉換(huan)為(wei)簡單(dan)型日(ri)志(zhi)(zhi)(zhi);若(ruo)目(mu)(mu)(mu)標(biao)數(shu)據(ju)是(shi)需(xu)要(yao)多個(ge)緩(huan)存(cun)處理(li)(li),則(ze)第一(yi)(yi)存(cun)儲(chu)(chu)設備(bei)將(jiang)目(mu)(mu)(mu)標(biao)數(shu)據(ju)轉換(huan)為(wei)復合型日(ri)志(zhi)(zhi)(zhi)。若(ruo)目(mu)(mu)(mu)標(biao)數(shu)據(ju)不需(xu)要(yao)在緩(huan)存(cun)中保存(cun),則(ze)第一(yi)(yi)存(cun)儲(chu)(chu)設備(bei)將(jiang)目(mu)(mu)(mu)標(biao)數(shu)據(ju)轉換(huan)為(wei)命令(ling)型日(ri)志(zhi)(zhi)(zhi),以描述(shu)該數(shu)據(ju)失效,以及失效數(shu)據(ju)的(de)位置和大(da)小(xiao)。這樣第一(yi)(yi)存(cun)儲(chu)(chu)設備(bei)能夠根據(ju)目(mu)(mu)(mu)標(biao)數(shu)據(ju)需(xu)要(yao)一(yi)(yi)個(ge)緩(huan)存(cun)處理(li)(li)、多個(ge)緩(huan)存(cun)處理(li)(li)還是(shi)不需(xu)要(yao)緩(huan)存(cun)處理(li)(li),為(wei)目(mu)(mu)(mu)標(biao)數(shu)據(ju)選擇生成合適(shi)的(de)目(mu)(mu)(mu)標(biao)日(ri)志(zhi)(zhi)(zhi)。
應理解,本(ben)申請(qing)(qing)實施例中(zhong)對(dui)(dui)“緩(huan)存(cun)(cun)”和“內(nei)存(cun)(cun)”不(bu)(bu)進行(xing)區(qu)分,也(ye)就是說,緩(huan)存(cun)(cun)和內(nei)存(cun)(cun)都(dou)能夠(gou)實現本(ben)申請(qing)(qing)實施例對(dui)(dui)數據存(cun)(cun)儲的需求(qiu),因此本(ben)申請(qing)(qing)對(dui)(dui)此不(bu)(bu)進行(xing)限定。
例(li)如,目標(biao)(biao)數(shu)據(ju)(ju)為(wei)需(xu)要一個緩存(cun)(cun)處(chu)理的(de)塊(kuai)(kuai)存(cun)(cun)儲(chu)數(shu)據(ju)(ju),塊(kuai)(kuai)存(cun)(cun)儲(chu)數(shu)據(ju)(ju)主要包括卷標(biao)(biao)識(volume Identity,volume ID)、塊(kuai)(kuai)起始地址(Logical block address,LBA)、塊(kuai)(kuai)個數(shu)(lengh)、用戶(hu)數(shu)據(ju)(ju)(buff)。由于目標(biao)(biao)數(shu)據(ju)(ju)需(xu)要一個緩存(cun)(cun)處(chu)理,因此,第一存(cun)(cun)儲(chu)設備將該塊(kuai)(kuai)存(cun)(cun)儲(chu)數(shu)據(ju)(ju)轉換為(wei)簡單型日(ri)志,并將LBA轉化為(wei)緩存(cun)(cun)管(guan)理單元(yuan)(yuan)的(de)編號(hao),比如LBA除以64k取(qu)(qu)整得(de)到單元(yuan)(yuan)編號(hao)(chunk ID)、取(qu)(qu)余(yu)得(de)到單元(yuan)(yuan)內的(de)偏移(offset),把volume ID、chunk ID、offset寫入日(ri)志頭中,將buff寫入日(ri)志數(shu)據(ju)(ju)部分,將用于保證(zheng)數(shu)據(ju)(ju)的(de)可靠性的(de)循(xun)環冗余(yu)校驗(yan)碼(Cyclic Redundancy Check,CRC)寫在日(ri)志尾。
應理解,本申(shen)請實施例中(zhong)對(dui)“緩存(cun)”和“內存(cun)”不進行區分(fen),也就是(shi)說,緩存(cun)和內存(cun)都(dou)能夠實現本申(shen)請實施例對(dui)數據存(cun)儲的需求。
703、第(di)一存儲(chu)設備向該第(di)二存儲(chu)設備發送該目標日志。
第(di)二存(cun)儲(chu)設備(bei)(bei)接(jie)收到(dao)該第(di)一存(cun)儲(chu)設備(bei)(bei)發送的(de)(de)目標(biao)(biao)日志,并(bing)將目標(biao)(biao)日志存(cun)儲(chu)到(dao)第(di)二存(cun)儲(chu)設備(bei)(bei)的(de)(de)內(nei)存(cun)中。
704、第二存儲設(she)備鏡像(xiang)存儲該目(mu)標日志。
第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)接收(shou)第(di)(di)一存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)根(gen)據寫請(qing)求消息中攜(xie)帶的(de)目(mu)(mu)(mu)標數(shu)(shu)據生成的(de)目(mu)(mu)(mu)標日(ri)(ri)志(zhi),并將該(gai)目(mu)(mu)(mu)標日(ri)(ri)志(zhi)直(zhi)(zhi)接存(cun)(cun)(cun)儲(chu)(chu)(chu)到第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)中,由(you)于(yu)該(gai)目(mu)(mu)(mu)標日(ri)(ri)志(zhi)包括用于(yu)表示(shi)該(gai)目(mu)(mu)(mu)標數(shu)(shu)據的(de)標識信息,這樣第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)存(cun)(cun)(cun)儲(chu)(chu)(chu)該(gai)目(mu)(mu)(mu)標日(ri)(ri)志(zhi)時并不需(xu)要創建內(nei)(nei)存(cun)(cun)(cun)索引(yin),相(xiang)比現有技(ji)術中,第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)需(xu)要配(pei)置內(nei)(nei)存(cun)(cun)(cun)索引(yin)而(er)言,本申請(qing)可以(yi)直(zhi)(zhi)接存(cun)(cun)(cun)儲(chu)(chu)(chu)該(gai)目(mu)(mu)(mu)標日(ri)(ri)志(zhi),從而(er)節省了第(di)(di)二(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)備(bei)配(pei)置內(nei)(nei)存(cun)(cun)(cun)索引(yin)時對CPU的(de)占用。
可(ke)選(xuan)地,作為(wei)一(yi)個實施例,第(di)一(yi)存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)接(jie)收到(dao)(dao)第(di)二存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)完(wan)(wan)(wan)成(cheng)鏡像存(cun)(cun)(cun)(cun)儲目(mu)標(biao)(biao)(biao)日(ri)志的(de)存(cun)(cun)(cun)(cun)儲完(wan)(wan)(wan)成(cheng)消息(xi),保證第(di)二存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)已經成(cheng)功(gong)完(wan)(wan)(wan)成(cheng)寫(xie)(xie)入目(mu)標(biao)(biao)(biao)日(ri)志之(zhi)后(hou)(hou),第(di)一(yi)存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)才(cai)(cai)開始在自己的(de)緩(huan)存(cun)(cun)(cun)(cun)中寫(xie)(xie)入目(mu)標(biao)(biao)(biao)日(ri)志,這(zhe)樣可(ke)以避(bi)免第(di)二存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)失(shi)敗,浪費了第(di)一(yi)存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)的(de)CPU占用。第(di)一(yi)存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)完(wan)(wan)(wan)成(cheng)寫(xie)(xie)入目(mu)標(biao)(biao)(biao)日(ri)志,且接(jie)收到(dao)(dao)第(di)二存(cun)(cun)(cun)(cun)儲設(she)備(bei)(bei)發送的(de)存(cun)(cun)(cun)(cun)儲完(wan)(wan)(wan)成(cheng)消息(xi)之(zhi)后(hou)(hou),向IO設(she)備(bei)(bei)發送寫(xie)(xie)請(qing)(qing)求(qiu)(qiu)(qiu)響(xiang)(xiang)應消息(xi),這(zhe)樣避(bi)免現有技術中需要等待將目(mu)標(biao)(biao)(biao)數據存(cun)(cun)(cun)(cun)儲到(dao)(dao)內(nei)存(cun)(cun)(cun)(cun)索引對(dui)應的(de)資源空間之(zhi)后(hou)(hou)才(cai)(cai)能向IO設(she)備(bei)(bei)返回寫(xie)(xie)請(qing)(qing)求(qiu)(qiu)(qiu)響(xiang)(xiang)應消息(xi),從而(er)減少了發出寫(xie)(xie)請(qing)(qing)求(qiu)(qiu)(qiu)到(dao)(dao)收到(dao)(dao)寫(xie)(xie)請(qing)(qing)求(qiu)(qiu)(qiu)響(xiang)(xiang)應消息(xi)的(de)時延。
應理(li)解,發送寫請求消息和(he)接收(shou)寫請求響(xiang)應消息的設(she)備可(ke)以(yi)是IO設(she)備也可(ke)以(yi)是其(qi)他設(she)備,為(wei)描述方便以(yi)IO設(she)備為(wei)例進行說明,但本申請并不限于此。
可選地,第一存(cun)(cun)儲(chu)設(she)(she)(she)備沒(mei)有(you)接收到存(cun)(cun)儲(chu)完(wan)成(cheng)消(xiao)(xiao)息之前,第一存(cun)(cun)儲(chu)設(she)(she)(she)備就開(kai)始寫(xie)入(ru)該目標日志,在(zai)第一存(cun)(cun)儲(chu)設(she)(she)(she)備完(wan)成(cheng)寫(xie)入(ru)目標日志,且接收到第二存(cun)(cun)儲(chu)設(she)(she)(she)備發送(song)的存(cun)(cun)儲(chu)完(wan)成(cheng)消(xiao)(xiao)息之后,向IO設(she)(she)(she)備發送(song)寫(xie)請(qing)求響(xiang)應(ying)消(xiao)(xiao)息,這樣可以更進一步節省向IO設(she)(she)(she)備返(fan)回(hui)寫(xie)請(qing)求響(xiang)應(ying)消(xiao)(xiao)息的時間。
可(ke)選地,作為一(yi)(yi)(yi)個實(shi)施例(li),該第(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)備(bei)包括(kuo)多個資(zi)源(yuan)空(kong)(kong)(kong)間;其(qi)中(zhong)(zhong),該第(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)備(bei)鏡(jing)(jing)像存(cun)(cun)(cun)(cun)儲(chu)該目標(biao)(biao)日志(zhi)包括(kuo):該第(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)備(bei)根據該標(biao)(biao)識信息(xi),確(que)定存(cun)(cun)(cun)(cun)儲(chu)該目標(biao)(biao)日志(zhi)的(de)第(di)一(yi)(yi)(yi)資(zi)源(yuan)空(kong)(kong)(kong)間,該第(di)一(yi)(yi)(yi)資(zi)源(yuan)空(kong)(kong)(kong)間為該第(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)備(bei)的(de)多個資(zi)源(yuan)空(kong)(kong)(kong)間中(zhong)(zhong)滿(man)足該目標(biao)(biao)日志(zhi)的(de)資(zi)源(yuan)需求的(de)任一(yi)(yi)(yi)資(zi)源(yuan)空(kong)(kong)(kong)間;該第(di)二存(cun)(cun)(cun)(cun)儲(chu)設(she)備(bei)將該目標(biao)(biao)日志(zhi)鏡(jing)(jing)像存(cun)(cun)(cun)(cun)儲(chu)到(dao)該第(di)一(yi)(yi)(yi)資(zi)源(yuan)空(kong)(kong)(kong)間中(zhong)(zhong)。
具體而(er)(er)言,第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)接收目(mu)(mu)(mu)標日志,該(gai)目(mu)(mu)(mu)標日志包括用(yong)于標識目(mu)(mu)(mu)標數據(ju)的標識信息,第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)根據(ju)該(gai)標識信息選擇合適的資(zi)源空間(表(biao)示為第(di)(di)一資(zi)源空間),將該(gai)目(mu)(mu)(mu)標日志存(cun)儲(chu)(chu)到第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)的第(di)(di)一資(zi)源空間中。此外,第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)可(ke)以(yi)根據(ju)標識信息識別目(mu)(mu)(mu)標數據(ju),以(yi)目(mu)(mu)(mu)標日志的形式(shi)可(ke)以(yi)將目(mu)(mu)(mu)標數據(ju)按照(zhao)順序進(jin)行(xing)有規律的存(cun)儲(chu)(chu),這樣第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)可(ke)以(yi)不需要為目(mu)(mu)(mu)標數據(ju)配(pei)置內存(cun)索引(yin),從而(er)(er)使得節省了(le)第(di)(di)二(er)(er)存(cun)儲(chu)(chu)設備(bei)的CPU占用(yong)。
應(ying)理解,第一資(zi)源空間(jian)即為上述提(ti)到(dao)的以Segment為單位的資(zi)源空間(jian),每個Segment可以存放多條日志。
可選地,該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)包(bao)括(kuo)多個資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian);該(gai)(gai)(gai)(gai)(gai)方法還包(bao)括(kuo):該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)獲(huo)取第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)地址(zhi)(zhi)和該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)容(rong)量,該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)為該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)的(de)多個資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)中(zhong)任(ren)一(yi)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian);該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)根據(ju)(ju)該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)容(rong)量和該(gai)(gai)(gai)(gai)(gai)標(biao)(biao)(biao)識(shi)信(xin)息,確定該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)是(shi)否(fou)滿足該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)的(de)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)需求(qiu);該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)在(zai)該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)滿足該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)的(de)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)需求(qiu)時,根據(ju)(ju)RDMA編碼方式(shi)、該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)和該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)地址(zhi)(zhi),生成RDMA消息,該(gai)(gai)(gai)(gai)(gai)RDMA消息包(bao)括(kuo)該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)的(de)存(cun)(cun)(cun)儲(chu)(chu)(chu)地址(zhi)(zhi)和該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi);其中(zhong),該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)向該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)發(fa)送該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)包(bao)括(kuo):該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)一(yi)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)向該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)發(fa)送該(gai)(gai)(gai)(gai)(gai)RDMA消息;其中(zhong),該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)鏡像存(cun)(cun)(cun)儲(chu)(chu)(chu)該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)包(bao)括(kuo):該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)存(cun)(cun)(cun)儲(chu)(chu)(chu)設(she)(she)(she)(she)(she)(she)備(bei)根據(ju)(ju)該(gai)(gai)(gai)(gai)(gai)RDMA消息,將(jiang)該(gai)(gai)(gai)(gai)(gai)目標(biao)(biao)(biao)日(ri)志(zhi)存(cun)(cun)(cun)儲(chu)(chu)(chu)到(dao)該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)(di)二(er)(er)(er)資(zi)(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)(kong)(kong)(kong)間(jian)中(zhong)。
具(ju)體而言,第(di)(di)(di)(di)二(er)(er)存儲(chu)(chu)設(she)備包括多(duo)個資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian),第(di)(di)(di)(di)二(er)(er)存儲(chu)(chu)設(she)備可以隨(sui)意發送任意一(yi)(yi)個資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)的(de)(de)存儲(chu)(chu)容(rong)量(liang)和存儲(chu)(chu)地(di)址。第(di)(di)(di)(di)一(yi)(yi)存儲(chu)(chu)設(she)備獲取到(dao)第(di)(di)(di)(di)二(er)(er)存儲(chu)(chu)設(she)備中(zhong)多(duo)個資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)中(zhong)任意一(yi)(yi)個資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)(表示(shi)為第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian))的(de)(de)存儲(chu)(chu)地(di)址和存儲(chu)(chu)容(rong)量(liang),并根據(ju)該第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)的(de)(de)存儲(chu)(chu)容(rong)量(liang)和目(mu)標(biao)(biao)(biao)日(ri)(ri)志的(de)(de)標(biao)(biao)(biao)識(shi)信息確定(ding)第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)是(shi)否(fou)滿足目(mu)標(biao)(biao)(biao)日(ri)(ri)志的(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)需(xu)求(qiu),相應地(di),第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)也是(shi)上述提到(dao)的(de)(de)Segment資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)。由于目(mu)標(biao)(biao)(biao)日(ri)(ri)志的(de)(de)標(biao)(biao)(biao)識(shi)信息包括目(mu)標(biao)(biao)(biao)數據(ju)的(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)大(da)小(xiao)(即存儲(chu)(chu)目(mu)標(biao)(biao)(biao)日(ri)(ri)志所需(xu)的(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)),因此(ci)第(di)(di)(di)(di)一(yi)(yi)存儲(chu)(chu)設(she)備可以通過(guo)比較標(biao)(biao)(biao)識(shi)信息中(zhong)目(mu)標(biao)(biao)(biao)數據(ju)的(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)大(da)小(xiao)與第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)的(de)(de)存儲(chu)(chu)容(rong)量(liang)確定(ding)第(di)(di)(di)(di)二(er)(er)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(jian)(jian)是(shi)否(fou)能夠(gou)滿足目(mu)標(biao)(biao)(biao)日(ri)(ri)志的(de)(de)資(zi)(zi)(zi)源(yuan)(yuan)(yuan)需(xu)求(qiu)。
該(gai)(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)在該(gai)(gai)(gai)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)滿足該(gai)(gai)(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi)的(de)資(zi)(zi)源(yuan)需(xu)求(qiu)時(shi),根(gen)據RDMA編碼方式、該(gai)(gai)(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi)和該(gai)(gai)(gai)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)的(de)存(cun)(cun)儲(chu)(chu)(chu)(chu)地(di)址,生(sheng)成RDMA消(xiao)息(xi),該(gai)(gai)(gai)RDMA消(xiao)息(xi)包括該(gai)(gai)(gai)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)的(de)存(cun)(cun)儲(chu)(chu)(chu)(chu)地(di)址和該(gai)(gai)(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi),第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)向第(di)(di)二(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)發送(song)該(gai)(gai)(gai)RDMA消(xiao)息(xi),第(di)(di)二(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)的(de)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)接收到(dao)RDMA消(xiao)息(xi)后(hou),解析(xi)得(de)到(dao)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi),并(bing)將(jiang)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi)直(zhi)接存(cun)(cun)儲(chu)(chu)(chu)(chu)到(dao)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)中。第(di)(di)二(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)在將(jiang)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi)鏡像(xiang)存(cun)(cun)儲(chu)(chu)(chu)(chu)到(dao)第(di)(di)二(er)(er)(er)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian)之后(hou),就可(ke)以向第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)返回鏡像(xiang)存(cun)(cun)儲(chu)(chu)(chu)(chu)完成消(xiao)息(xi)。本申請實施(shi)例(li)相比第(di)(di)二(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)接收目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi),并(bing)需(xu)要(yao)為目(mu)標(biao)(biao)日(ri)(ri)志(zhi)(zhi)(zhi)選擇合適的(de)資(zi)(zi)源(yuan)空(kong)(kong)間(jian)(jian)(jian),能夠(gou)更進一(yi)步節省了(le)第(di)(di)二(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設(she)(she)備(bei)(bei)(bei)的(de)CPU的(de)占用。
例如,如圖2所示,第一(yi)存儲設(she)備(bei)通(tong)過(guo)RDMA技術(shu),可以將目標日志(zhi)從資源(yuan)層(ceng)132a直接發送到資源(yuan)層(ceng)132b。
可選地(di)(di),作(zuo)為一(yi)個(ge)實施例,該(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)設(she)(she)(she)備(bei)獲取第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)(yuan)空(kong)間(jian)的存(cun)(cun)儲(chu)(chu)地(di)(di)址(zhi)(zhi)和該(gai)(gai)第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)(yuan)空(kong)間(jian)的存(cun)(cun)儲(chu)(chu)容量(liang)包括:該(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)設(she)(she)(she)備(bei)向該(gai)(gai)第(di)(di)二(er)(er)存(cun)(cun)儲(chu)(chu)設(she)(she)(she)備(bei)發送資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)(qiu)(qiu)消(xiao)息(xi)(xi),該(gai)(gai)資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)(qiu)(qiu)消(xiao)息(xi)(xi)用(yong)于請求(qiu)(qiu)(qiu)(qiu)存(cun)(cun)儲(chu)(chu)該(gai)(gai)目(mu)標(biao)日志的該(gai)(gai)第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)(yuan)空(kong)間(jian);該(gai)(gai)第(di)(di)一(yi)存(cun)(cun)儲(chu)(chu)設(she)(she)(she)備(bei)接收該(gai)(gai)第(di)(di)二(er)(er)存(cun)(cun)儲(chu)(chu)設(she)(she)(she)備(bei)根據該(gai)(gai)資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)(qiu)(qiu)消(xiao)息(xi)(xi)發送的資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)(qiu)(qiu)響(xiang)應消(xiao)息(xi)(xi),該(gai)(gai)資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)(qiu)(qiu)響(xiang)應消(xiao)息(xi)(xi)攜帶該(gai)(gai)第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)(yuan)空(kong)間(jian)的存(cun)(cun)儲(chu)(chu)地(di)(di)址(zhi)(zhi)和該(gai)(gai)第(di)(di)二(er)(er)資(zi)源(yuan)(yuan)(yuan)空(kong)間(jian)的存(cun)(cun)儲(chu)(chu)容量(liang)。
具體而(er)言,第(di)(di)(di)(di)(di)(di)一(yi)存(cun)(cun)儲設(she)(she)(she)備(bei)可以向第(di)(di)(di)(di)(di)(di)二(er)存(cun)(cun)儲設(she)(she)(she)備(bei)發(fa)送資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu),以獲(huo)取第(di)(di)(di)(di)(di)(di)二(er)存(cun)(cun)儲設(she)(she)(she)備(bei)的(de)(de)(de)(de)資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)(de)(de)存(cun)(cun)儲地址(zhi)以及該資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)(de)(de)剩余(yu)資(zi)源(yuan)(yuan)(yuan)大小(即該資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)中還(huan)能(neng)夠寫入多(duo)大的(de)(de)(de)(de)數據)。第(di)(di)(di)(di)(di)(di)一(yi)存(cun)(cun)儲設(she)(she)(she)備(bei)可以向第(di)(di)(di)(di)(di)(di)二(er)存(cun)(cun)儲設(she)(she)(she)備(bei)發(fa)送資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)消息,第(di)(di)(di)(di)(di)(di)二(er)存(cun)(cun)儲設(she)(she)(she)備(bei)在多(duo)個資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)中選擇任意(yi)一(yi)個資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)(表示(shi)為(wei)第(di)(di)(di)(di)(di)(di)二(er)資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)),并向第(di)(di)(di)(di)(di)(di)一(yi)存(cun)(cun)儲設(she)(she)(she)備(bei)發(fa)送資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)響應(ying)(ying)消息,且(qie)在資(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)響應(ying)(ying)消息中攜帶該第(di)(di)(di)(di)(di)(di)二(er)資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)(de)(de)存(cun)(cun)儲地址(zhi)和(he)該第(di)(di)(di)(di)(di)(di)二(er)資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)(de)(de)剩余(yu)容量,從(cong)而(er)使得第(di)(di)(di)(di)(di)(di)一(yi)存(cun)(cun)儲設(she)(she)(she)備(bei)能(neng)夠為(wei)目標日志(zhi)選擇合適的(de)(de)(de)(de)資(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)。
應(ying)理解,本申請實施例中,第(di)一存儲(chu)(chu)(chu)設(she)備可以只獲取(qu)一次第(di)二存儲(chu)(chu)(chu)設(she)備的(de)(de)資源(yuan)空間(jian)(jian)的(de)(de)地(di)址(zhi)和存儲(chu)(chu)(chu)容(rong)量(liang),直至該(gai)資源(yuan)空間(jian)(jian)沒有(you)剩(sheng)余資源(yuan),或者剩(sheng)余資源(yuan)不能(neng)夠滿足當(dang)前待寫入數據的(de)(de)大小,然后才進行下一次獲取(qu)第(di)二存儲(chu)(chu)(chu)設(she)備的(de)(de)資源(yuan)空間(jian)(jian)的(de)(de)地(di)址(zhi)和存儲(chu)(chu)(chu)容(rong)量(liang)。
可選地,作(zuo)為(wei)一(yi)個實施例,該方法還包括:該第(di)(di)一(yi)存儲設(she)備為(wei)該目(mu)(mu)標數(shu)據配(pei)置內存索(suo)引;該第(di)(di)一(yi)存儲設(she)備根據該內存索(suo)引,確定存儲該目(mu)(mu)標數(shu)據的(de)該第(di)(di)一(yi)存儲設(she)備的(de)資源(yuan)空(kong)(kong)(kong)間,其中,該第(di)(di)一(yi)存儲設(she)備的(de)資源(yuan)空(kong)(kong)(kong)間的(de)存儲地址對應于(yu)該內存索(suo)引;該第(di)(di)一(yi)存儲設(she)備將該目(mu)(mu)標數(shu)據寫(xie)入該第(di)(di)一(yi)存儲設(she)備的(de)資源(yuan)空(kong)(kong)(kong)間中。
第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)在(zai)完成存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)目(mu)標(biao)日志,以及接(jie)收到(dao)第(di)二存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)返回的(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)完成消(xiao)息后(hou),向(xiang)IO設(she)備(bei)發(fa)送寫(xie)請求(qiu)響(xiang)應消(xiao)息。由(you)于根據(ju)(ju)(ju)(ju)(ju)內存(cun)(cun)(cun)(cun)索(suo)引(yin)讀(du)取(qu)目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)比較快,因此,在(zai)此之后(hou),第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)還(huan)可以為目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)配置內存(cun)(cun)(cun)(cun)索(suo)引(yin),該(gai)內存(cun)(cun)(cun)(cun)索(suo)引(yin)用(yong)于標(biao)識(shi)目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(例如,目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)大(da)小(xiao)、類型等),并(bing)根據(ju)(ju)(ju)(ju)(ju)該(gai)內存(cun)(cun)(cun)(cun)索(suo)引(yin)為目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)申(shen)(shen)請存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)資源(yuan)(yuan)(表示(shi)為第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)的(de)(de)(de)資源(yuan)(yuan)空(kong)間(jian),該(gai)第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)也可以包括多個存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)空(kong)間(jian)),且配置已(yi)經(jing)申(shen)(shen)請的(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)資源(yuan)(yuan)的(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)地(di)址(zhi)與內存(cun)(cun)(cun)(cun)索(suo)引(yin)的(de)(de)(de)映射關(guan)系,該(gai)映射關(guan)系用(yong)于后(hou)續第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)能夠根據(ju)(ju)(ju)(ju)(ju)內存(cun)(cun)(cun)(cun)索(suo)引(yin)讀(du)取(qu)到(dao)對(dui)(dui)應的(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)地(di)址(zhi)中存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)的(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju),最后(hou)將目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)寫(xie)入到(dao)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)地(di)址(zhi)對(dui)(dui)應的(de)(de)(de)資源(yuan)(yuan)空(kong)間(jian)中,這(zhe)樣第(di)一(yi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)設(she)備(bei)將目(mu)標(biao)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)(chu)(chu)(chu)到(dao)有內存(cun)(cun)(cun)(cun)索(suo)引(yin)對(dui)(dui)應的(de)(de)(de)資源(yuan)(yuan)空(kong)間(jian)中,并(bing)不(bu)會延長影響(xiang)返回寫(xie)請求(qiu)響(xiang)應消(xiao)息的(de)(de)(de)時間(jian)。
應理解(jie),該目標(biao)數據可(ke)以(yi)是寫請求中攜(xie)帶的目標(biao)數據,也可(ke)以(yi)是解(jie)析目標(biao)日志獲得的目標(biao)數據,本(ben)申請對(dui)此不進行限定。
還應理解,第一存(cun)(cun)儲設備(bei)(bei)也可以不(bu)存(cun)(cun)儲目(mu)標日(ri)志,而(er)是直接將目(mu)標數(shu)據寫(xie)入(ru)內(nei)存(cun)(cun)索(suo)引(yin)對應的(de)資源(yuan)空(kong)間中;或者,第一存(cun)(cun)儲設備(bei)(bei)寫(xie)入(ru)目(mu)標日(ri)志后(hou)(hou),再進(jin)(jin)行將目(mu)標數(shu)據寫(xie)入(ru)內(nei)存(cun)(cun)索(suo)引(yin)對應的(de)資源(yuan)空(kong)間中之(zhi)后(hou)(hou),才發送(song)寫(xie)請(qing)求響應消息。本申請(qing)對此不(bu)進(jin)(jin)行限定。
第(di)二存(cun)(cun)儲(chu)設(she)備(bei)存(cun)(cun)儲(chu)目標日志(zhi)用于在第(di)一(yi)存(cun)(cun)儲(chu)設(she)備(bei)故(gu)障(zhang)時,第(di)二存(cun)(cun)儲(chu)設(she)備(bei)可以接管第(di)一(yi)存(cun)(cun)儲(chu)設(she)備(bei)當前服務的(de)數據存(cun)(cun)儲(chu),具(ju)體故(gu)障(zhang)現(xian)象(xiang)有如下幾(ji)種:
在第一存(cun)儲設備(bei)故障時,第二存(cun)儲設備(bei)檢測到(dao)該(gai)故障后,第二存(cun)儲設備(bei)接管數(shu)(shu)據(ju)存(cun)儲。這(zhe)時,第二存(cun)儲設備(bei)需要進行目(mu)標(biao)(biao)(biao)日志(zhi)回放,日志(zhi)回放是指解析(xi)目(mu)標(biao)(biao)(biao)日志(zhi)以獲(huo)取有效的目(mu)標(biao)(biao)(biao)數(shu)(shu)據(ju)(即將(jiang)目(mu)標(biao)(biao)(biao)數(shu)(shu)據(ju)逐(zhu)條讀出),為目(mu)標(biao)(biao)(biao)數(shu)(shu)據(ju)配置內(nei)存(cun)索(suo)引,并(bing)將(jiang)目(mu)標(biao)(biao)(biao)數(shu)(shu)據(ju)存(cun)儲到(dao)對(dui)(dui)應的資(zi)(zi)源(yuan)(yuan)空(kong)(kong)間中(即表(biao)示日志(zhi)回放結束),該(gai)資(zi)(zi)源(yuan)(yuan)空(kong)(kong)間為內(nei)存(cun)索(suo)引對(dui)(dui)應的存(cun)儲地(di)址,該(gai)存(cun)儲地(di)址對(dui)(dui)應的資(zi)(zi)源(yuan)(yuan)空(kong)(kong)間;此后,第二存(cun)儲設備(bei)才能夠處理數(shu)(shu)據(ju)存(cun)儲業務(wu)。
在第一存儲設(she)備(bei)故障后快速恢復,第一存儲設(she)備(bei)可以直接重啟回放日志,之后,第一存儲設(she)備(bei)才能夠處(chu)理數據(ju)存儲業務(wu)。
在第(di)一存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)和第(di)二(er)存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)都故障的(de)(de)情況下,重啟后(hou),第(di)一存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)可以與第(di)二(er)存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)競爭(zheng)主存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)(即接管當前數據(ju)(ju)存(cun)(cun)(cun)儲(chu)(chu)),競爭(zheng)為(wei)主存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)后(hou),回放日志。此后(hou),第(di)二(er)存(cun)(cun)(cun)儲(chu)(chu)設備(bei)(bei)才能夠處理(li)數據(ju)(ju)存(cun)(cun)(cun)儲(chu)(chu)業務,不會造成(cheng)內(nei)存(cun)(cun)(cun)數據(ju)(ju)的(de)(de)丟失,提供了數據(ju)(ju)存(cun)(cun)(cun)儲(chu)(chu)的(de)(de)可靠性。。
應理解,在本申(shen)請的(de)(de)(de)各種實(shi)施(shi)例(li)中,上述各過程的(de)(de)(de)序(xu)號的(de)(de)(de)大小(xiao)并不意味(wei)著執行順序(xu)的(de)(de)(de)先后,各過程的(de)(de)(de)執行順序(xu)應以其功(gong)能和內在邏輯(ji)確定(ding),而不應對本申(shen)請實(shi)施(shi)例(li)的(de)(de)(de)實(shi)施(shi)過程構成(cheng)任何(he)限(xian)定(ding)。
因此(ci),本申(shen)請(qing)實施例的(de)(de)(de)(de)數(shu)據(ju)存(cun)(cun)儲(chu)的(de)(de)(de)(de)方法(fa),第(di)(di)一存(cun)(cun)儲(chu)設(she)(she)(she)備通過接收(shou)攜帶目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數(shu)據(ju)的(de)(de)(de)(de)寫(xie)請(qing)求(qiu)消息,根(gen)據(ju)該寫(xie)請(qing)求(qiu)消息中(zhong)的(de)(de)(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數(shu)據(ju)生成(cheng)(cheng)包括該目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數(shu)據(ju)和用于標(biao)(biao)(biao)(biao)識(shi)(shi)該目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數(shu)據(ju)的(de)(de)(de)(de)標(biao)(biao)(biao)(biao)識(shi)(shi)信息的(de)(de)(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi),并向該第(di)(di)二存(cun)(cun)儲(chu)設(she)(she)(she)備發送(song)該目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi),第(di)(di)二存(cun)(cun)儲(chu)設(she)(she)(she)備鏡像存(cun)(cun)儲(chu)該目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi),且鏡像存(cun)(cun)儲(chu)該目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi)不需要配(pei)置(zhi)內存(cun)(cun)索引,這樣第(di)(di)一存(cun)(cun)儲(chu)設(she)(she)(she)備生成(cheng)(cheng)包括標(biao)(biao)(biao)(biao)識(shi)(shi)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數(shu)據(ju)的(de)(de)(de)(de)標(biao)(biao)(biao)(biao)識(shi)(shi)信息的(de)(de)(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi),第(di)(di)二存(cun)(cun)儲(chu)設(she)(she)(she)備可以(yi)存(cun)(cun)儲(chu)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日(ri)(ri)志(zhi)不需要配(pei)置(zhi)內存(cun)(cun)索引,從(cong)而減(jian)少了對第(di)(di)二存(cun)(cun)儲(chu)設(she)(she)(she)備的(de)(de)(de)(de)CPU的(de)(de)(de)(de)占用。
圖(tu)8示(shi)出了根(gen)據(ju)本申請(qing)一個實(shi)(shi)施例的(de)(de)數據(ju)存儲的(de)(de)方法的(de)(de)交互流程圖(tu)。本申請(qing)實(shi)(shi)施例中的(de)(de)各種(zhong)術語(yu)的(de)(de)含義與前(qian)述各實(shi)(shi)施例相(xiang)同。
應注意,這只(zhi)是為了幫助本(ben)領(ling)域技術(shu)人(ren)員更好地理解本(ben)申請實施例,而非限制(zhi)本(ben)申請實施例的范圍。
801、第一存儲設備接收寫請(qing)求消息(xi),該(gai)寫請(qing)求消息(xi)攜帶目標數(shu)據。
802、第一存儲(chu)設備根據目(mu)(mu)標(biao)數據生成相應的目(mu)(mu)標(biao)日志,目(mu)(mu)標(biao)日志包括目(mu)(mu)標(biao)數據和用于標(biao)識目(mu)(mu)標(biao)數據的標(biao)識信息。
803、第一(yi)存(cun)(cun)(cun)儲設備(bei)獲(huo)取第二存(cun)(cun)(cun)儲設備(bei)的資(zi)(zi)(zi)源空間(表示為第二資(zi)(zi)(zi)源空間)的存(cun)(cun)(cun)儲地址和資(zi)(zi)(zi)源空間的存(cun)(cun)(cun)儲容量。
804、第一(yi)存儲(chu)設備根據(ju)第二資(zi)源空(kong)間(jian)的(de)存儲(chu)容量和標(biao)(biao)識(shi)信息,確定獲取的(de)第二資(zi)源空(kong)間(jian)的(de)存儲(chu)容量是否能夠(gou)滿(man)足目(mu)標(biao)(biao)日志的(de)資(zi)源需(xu)求。
805、第(di)一(yi)存儲(chu)設(she)備在確定(ding)獲取的第(di)二資(zi)源空(kong)間(jian)的存儲(chu)容量能夠滿(man)足目(mu)標日(ri)志(zhi)的資(zi)源需求(qiu),根據目(mu)標日(ri)志(zhi)、RDMA編碼方(fang)式、第(di)二資(zi)源空(kong)間(jian)的存儲(chu)地址生成RDMA消息(xi)。
806、第一存(cun)儲設(she)備向第二存(cun)儲設(she)備發(fa)送RDMA消息。
807、第二存(cun)儲設備根據RDMA消息,將目標(biao)日志直接存(cun)儲到存(cun)儲地址對應(ying)的第二資源空間(jian)中。
可(ke)選地,第(di)一存儲(chu)(chu)設(she)備可(ke)以(yi)直接向(xiang)第(di)二存儲(chu)(chu)設(she)備發送目標(biao)日(ri)志(zhi),由第(di)二存儲(chu)(chu)設(she)備來確定能夠存儲(chu)(chu)目標(biao)日(ri)志(zhi)的資(zi)源(yuan)空間,這樣可(ke)以(yi)不需要步驟803至(zhi)807。
808、第二(er)存(cun)(cun)儲設(she)(she)備在完(wan)成目標日志(zhi)的鏡像存(cun)(cun)儲后,向(xiang)第一存(cun)(cun)儲設(she)(she)備發送存(cun)(cun)儲完(wan)成消息。
809、第一(yi)存儲設(she)備在本(ben)地存儲目標日志。
步(bu)驟808和步(bu)驟809可以沒有先后關系,本申請對(dui)此不(bu)進行限定。
810、第一存(cun)儲(chu)(chu)設(she)備(bei)在本地完成存(cun)儲(chu)(chu)目(mu)標日志,且接收(shou)到存(cun)儲(chu)(chu)完成消息之后,向IO設(she)備(bei)返(fan)回寫請(qing)求響應(ying)消息。
811、第一存(cun)儲設備(bei)在本地為目標(biao)(biao)(biao)數據配置對應的內存(cun)索(suo)(suo)引,該(gai)內存(cun)索(suo)(suo)引用于(yu)標(biao)(biao)(biao)識目標(biao)(biao)(biao)數據。
812、第(di)(di)一存儲(chu)設備(bei)根據該內存索引,確定存儲(chu)目標數據的第(di)(di)一存儲(chu)設備(bei)的資源空間。
813、第一(yi)存(cun)儲設(she)備(bei)將目標數據存(cun)儲到(dao)確定的(de)第一(yi)存(cun)儲設(she)備(bei)的(de)資源空間中。
應理(li)解,上述(shu)相應信息的(de)具體指示方式可參考前(qian)述(shu)各實施(shi)例,為(wei)了簡潔(jie),在此不再贅(zhui)述(shu)。
因此,本申(shen)請(qing)實施例的(de)(de)(de)(de)數據存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)的(de)(de)(de)(de)方(fang)法,第(di)一存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備通(tong)過接收攜帶(dai)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數據的(de)(de)(de)(de)寫請(qing)求(qiu)消(xiao)息(xi),根(gen)據該(gai)(gai)(gai)(gai)寫請(qing)求(qiu)消(xiao)息(xi)中的(de)(de)(de)(de)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數據生(sheng)成(cheng)包括該(gai)(gai)(gai)(gai)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數據和用(yong)于標(biao)(biao)(biao)(biao)識(shi)該(gai)(gai)(gai)(gai)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數據的(de)(de)(de)(de)標(biao)(biao)(biao)(biao)識(shi)信息(xi)的(de)(de)(de)(de)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi),獲取第(di)二(er)(er)(er)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備的(de)(de)(de)(de)第(di)二(er)(er)(er)資源(yuan)(yuan)空間,在第(di)二(er)(er)(er)資源(yuan)(yuan)空間滿足(zu)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)的(de)(de)(de)(de)資源(yuan)(yuan)需(xu)求(qiu)時,根(gen)據目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)、RDMA編(bian)碼方(fang)式和第(di)二(er)(er)(er)資源(yuan)(yuan)空間的(de)(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)地址生(sheng)成(cheng)RDMA消(xiao)息(xi),并(bing)向該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備發送(song)該(gai)(gai)(gai)(gai)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi),第(di)二(er)(er)(er)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備根(gen)據RDMA消(xiao)息(xi)將目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)直(zhi)(zhi)接存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)到第(di)二(er)(er)(er)資源(yuan)(yuan)空間中,且(qie)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)該(gai)(gai)(gai)(gai)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)不需(xu)要配(pei)置內(nei)存(cun)(cun)(cun)(cun)索引(yin),這樣第(di)一存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備生(sheng)成(cheng)包括標(biao)(biao)(biao)(biao)識(shi)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)數據的(de)(de)(de)(de)標(biao)(biao)(biao)(biao)識(shi)信息(xi)的(de)(de)(de)(de)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi),并(bing)通(tong)過發送(song)RDMA消(xiao)息(xi)直(zhi)(zhi)接將目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)在滿足(zu)資源(yuan)(yuan)需(xu)求(qiu)的(de)(de)(de)(de)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)空間中,第(di)二(er)(er)(er)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)目(mu)(mu)(mu)(mu)(mu)標(biao)(biao)(biao)(biao)日志(zhi)(zhi)可以不需(xu)要配(pei)置內(nei)存(cun)(cun)(cun)(cun)索引(yin),從而減少了對(dui)第(di)二(er)(er)(er)存(cun)(cun)(cun)(cun)儲(chu)(chu)(chu)設備的(de)(de)(de)(de)CPU的(de)(de)(de)(de)占用(yong)。
應理解(jie),在本申(shen)請(qing)的(de)各(ge)種實(shi)施例中,上(shang)述各(ge)過(guo)程(cheng)的(de)序(xu)(xu)號(hao)的(de)大小(xiao)并(bing)不意味(wei)著執(zhi)行(xing)順序(xu)(xu)的(de)先后,各(ge)過(guo)程(cheng)的(de)執(zhi)行(xing)順序(xu)(xu)應以其功能和內在邏輯確定,而不應對(dui)本申(shen)請(qing)實(shi)施例的(de)實(shi)施過(guo)程(cheng)構(gou)成(cheng)任何限定。
上(shang)文(wen)中詳細描述了(le)根(gen)(gen)據(ju)(ju)本申請(qing)實施(shi)例的數據(ju)(ju)存(cun)儲的方法,下面(mian)將描述根(gen)(gen)據(ju)(ju)本申請(qing)實施(shi)例的存(cun)儲設(she)備。
圖(tu)9示出了根據本申請實(shi)施例的(de)存(cun)(cun)儲(chu)(chu)(chu)(chu)系(xi)統(tong)900的(de)示意性框圖(tu),該(gai)存(cun)(cun)儲(chu)(chu)(chu)(chu)系(xi)統(tong)包括第(di)(di)一存(cun)(cun)儲(chu)(chu)(chu)(chu)設備910和至(zhi)少一個第(di)(di)二(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設備920,其中(zhong),該(gai)第(di)(di)二(er)存(cun)(cun)儲(chu)(chu)(chu)(chu)設備920為該(gai)第(di)(di)一存(cun)(cun)儲(chu)(chu)(chu)(chu)設備910的(de)鏡像(xiang)存(cun)(cun)儲(chu)(chu)(chu)(chu)設備,該(gai)存(cun)(cun)儲(chu)(chu)(chu)(chu)系(xi)統(tong)900用于(yu)執行圖(tu)7所述的(de)數據存(cun)(cun)儲(chu)(chu)(chu)(chu)的(de)方(fang)法,該(gai)存(cun)(cun)儲(chu)(chu)(chu)(chu)系(xi)統(tong)900包括:
該第一存儲設備910,用于接收寫(xie)(xie)請求消(xiao)息,該寫(xie)(xie)請求消(xiao)息攜帶目標(biao)(biao)數據(ju)(ju)(ju),根據(ju)(ju)(ju)該目標(biao)(biao)數據(ju)(ju)(ju)生成目標(biao)(biao)日(ri)(ri)志(zhi),并向該第二存儲設備920發送該目標(biao)(biao)日(ri)(ri)志(zhi),該目標(biao)(biao)日(ri)(ri)志(zhi)包括該目標(biao)(biao)數據(ju)(ju)(ju)和用于標(biao)(biao)識該目標(biao)(biao)數據(ju)(ju)(ju)的標(biao)(biao)識信息;
該第二存儲(chu)設(she)備920,用于(yu)存儲(chu)該目標(biao)日志,且該存儲(chu)該目標(biao)日志不需要配置(zhi)內(nei)存索(suo)引。
因(yin)此(ci),本申(shen)請實施例的(de)(de)(de)存(cun)儲(chu)(chu)系統,第(di)(di)一存(cun)儲(chu)(chu)設(she)(she)備(bei)通過接收攜帶目(mu)標(biao)(biao)數(shu)據(ju)(ju)(ju)(ju)的(de)(de)(de)寫請求消息(xi)(xi),根據(ju)(ju)(ju)(ju)該(gai)寫請求消息(xi)(xi)中的(de)(de)(de)目(mu)標(biao)(biao)數(shu)據(ju)(ju)(ju)(ju)生(sheng)成包(bao)括(kuo)該(gai)目(mu)標(biao)(biao)數(shu)據(ju)(ju)(ju)(ju)和(he)用(yong)于(yu)標(biao)(biao)識該(gai)目(mu)標(biao)(biao)數(shu)據(ju)(ju)(ju)(ju)的(de)(de)(de)標(biao)(biao)識信(xin)息(xi)(xi)的(de)(de)(de)目(mu)標(biao)(biao)日(ri)(ri)志(zhi),并向該(gai)第(di)(di)二(er)(er)(er)存(cun)儲(chu)(chu)設(she)(she)備(bei)發送(song)該(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi),第(di)(di)二(er)(er)(er)存(cun)儲(chu)(chu)設(she)(she)備(bei)鏡像(xiang)存(cun)儲(chu)(chu)該(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi),且鏡像(xiang)存(cun)儲(chu)(chu)該(gai)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)不需要配置(zhi)內(nei)存(cun)索引,這樣第(di)(di)一存(cun)儲(chu)(chu)設(she)(she)備(bei)生(sheng)成包(bao)括(kuo)標(biao)(biao)識目(mu)標(biao)(biao)數(shu)據(ju)(ju)(ju)(ju)的(de)(de)(de)標(biao)(biao)識信(xin)息(xi)(xi)的(de)(de)(de)目(mu)標(biao)(biao)日(ri)(ri)志(zhi),第(di)(di)二(er)(er)(er)存(cun)儲(chu)(chu)設(she)(she)備(bei)可以存(cun)儲(chu)(chu)目(mu)標(biao)(biao)日(ri)(ri)志(zhi)不需要配置(zhi)內(nei)存(cun)索引,從而減少了(le)對(dui)第(di)(di)二(er)(er)(er)存(cun)儲(chu)(chu)設(she)(she)備(bei)的(de)(de)(de)CPU的(de)(de)(de)占用(yong)。
可(ke)選地,在(zai)本申請一個(ge)實(shi)施例中,該(gai)第(di)二存儲(chu)(chu)設備920還用(yong)于(yu)在(zai)完(wan)成存儲(chu)(chu)該(gai)目標日志時,向該(gai)第(di)一存儲(chu)(chu)設備910發送存儲(chu)(chu)完(wan)成消(xiao)息;
該(gai)第一(yi)存儲(chu)設備910還用于存儲(chu)該(gai)目標日志(zhi),并(bing)在完成該(gai)目標日志(zhi)的存儲(chu)和接(jie)收到該(gai)存儲(chu)完成消息(xi)之后,發送寫請求響應消息(xi)。
可選地(di),在(zai)本申請(qing)一個實施例中,該(gai)第(di)二存儲設(she)備(bei)920包括多個資源空間(jian);
該第二存儲設備920具(ju)體用于(yu):
根(gen)據該(gai)標識(shi)信息,確定存儲該(gai)目(mu)標日志的第一資(zi)(zi)源(yuan)空間(jian),該(gai)第一資(zi)(zi)源(yuan)空間(jian)為該(gai)第二存儲設備920的多個資(zi)(zi)源(yuan)空間(jian)中滿足該(gai)目(mu)標日志的資(zi)(zi)源(yuan)需求(qiu)的任一資(zi)(zi)源(yuan)空間(jian);
將(jiang)該(gai)目標日志(zhi)存(cun)儲到(dao)該(gai)第一(yi)資源(yuan)空間中(zhong)。
可選地,在本申請一(yi)個實施例中,該第(di)二存儲設(she)備920包(bao)括多個資源空間;
該(gai)(gai)(gai)(gai)第(di)一存(cun)(cun)儲(chu)(chu)(chu)設備(bei)910,還用于獲取(qu)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)存(cun)(cun)儲(chu)(chu)(chu)地址(zhi)和該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)存(cun)(cun)儲(chu)(chu)(chu)容量(liang)(liang),根據(ju)該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)存(cun)(cun)儲(chu)(chu)(chu)容量(liang)(liang)和該(gai)(gai)(gai)(gai)標(biao)(biao)識信息(xi)確定該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)是否滿(man)足(zu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)(biao)日(ri)志(zhi)的(de)(de)資(zi)(zi)源(yuan)(yuan)(yuan)需求(qiu)(qiu),并在該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)滿(man)足(zu)該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)(biao)日(ri)志(zhi)的(de)(de)資(zi)(zi)源(yuan)(yuan)(yuan)需求(qiu)(qiu)時根據(ju)遠程直(zhi)接數據(ju)存(cun)(cun)取(qu)RDMA編碼方式、該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)(biao)日(ri)志(zhi)和該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)存(cun)(cun)儲(chu)(chu)(chu)地址(zhi)生(sheng)成RDMA消(xiao)息(xi),以及向該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)設備(bei)920的(de)(de)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)發(fa)送該(gai)(gai)(gai)(gai)RDMA消(xiao)息(xi),該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)為該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)存(cun)(cun)儲(chu)(chu)(chu)設備(bei)920的(de)(de)多個資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)中任一資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian),該(gai)(gai)(gai)(gai)RDMA消(xiao)息(xi)包括(kuo)該(gai)(gai)(gai)(gai)第(di)二(er)(er)(er)(er)(er)資(zi)(zi)源(yuan)(yuan)(yuan)空(kong)(kong)間(jian)(jian)的(de)(de)存(cun)(cun)儲(chu)(chu)(chu)地址(zhi)和該(gai)(gai)(gai)(gai)目(mu)(mu)標(biao)(biao)日(ri)志(zhi);
該第(di)二存(cun)儲設備920,還用于(yu)通(tong)過該第(di)二資(zi)源空間根據該RDMA消息,存(cun)儲該目標日志(zhi)。
可(ke)選地,在本申請一(yi)個實(shi)施例中,該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)一(yi)存儲(chu)設備910,還(huan)用于向該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)二存儲(chu)設備920發送(song)(song)資(zi)(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)消息,并接(jie)收該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)二存儲(chu)設備920根據該(gai)(gai)(gai)(gai)(gai)資(zi)(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)消息發送(song)(song)的資(zi)(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)響應(ying)消息,該(gai)(gai)(gai)(gai)(gai)資(zi)(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)消息用于請求(qiu)(qiu)存儲(chu)該(gai)(gai)(gai)(gai)(gai)目標日志的該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)二資(zi)(zi)源(yuan)(yuan)(yuan)空間,該(gai)(gai)(gai)(gai)(gai)資(zi)(zi)源(yuan)(yuan)(yuan)請求(qiu)(qiu)響應(ying)消息攜(xie)帶該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)二資(zi)(zi)源(yuan)(yuan)(yuan)空間的存儲(chu)地址和該(gai)(gai)(gai)(gai)(gai)第(di)(di)(di)二資(zi)(zi)源(yuan)(yuan)(yuan)空間的存儲(chu)容量。
可選地,在本申請一(yi)(yi)個實施例中,該(gai)(gai)(gai)第(di)(di)一(yi)(yi)存(cun)(cun)儲設備(bei)(bei)(bei)(bei)910,還(huan)用于為該(gai)(gai)(gai)目標數據(ju)(ju)配置內存(cun)(cun)索引,并根據(ju)(ju)該(gai)(gai)(gai)內存(cun)(cun)索引確(que)定存(cun)(cun)儲該(gai)(gai)(gai)目標數據(ju)(ju)的(de)(de)(de)該(gai)(gai)(gai)第(di)(di)一(yi)(yi)存(cun)(cun)儲設備(bei)(bei)(bei)(bei)的(de)(de)(de)資源(yuan)空間,以及將該(gai)(gai)(gai)目標數據(ju)(ju)寫入該(gai)(gai)(gai)第(di)(di)一(yi)(yi)存(cun)(cun)儲設備(bei)(bei)(bei)(bei)的(de)(de)(de)資源(yuan)空間中,其中,該(gai)(gai)(gai)第(di)(di)一(yi)(yi)存(cun)(cun)儲設備(bei)(bei)(bei)(bei)的(de)(de)(de)資源(yuan)空間的(de)(de)(de)存(cun)(cun)儲地址對應于該(gai)(gai)(gai)內存(cun)(cun)索引。
因(yin)此,本申請(qing)(qing)實施例的存(cun)(cun)儲系統(tong),第(di)一存(cun)(cun)儲設備(bei)(bei)通(tong)過接收攜帶目(mu)(mu)(mu)標(biao)(biao)(biao)數(shu)據(ju)的寫請(qing)(qing)求(qiu)消息(xi),根據(ju)該(gai)(gai)寫請(qing)(qing)求(qiu)消息(xi)中的目(mu)(mu)(mu)標(biao)(biao)(biao)數(shu)據(ju)生成(cheng)包括該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)數(shu)據(ju)和用(yong)于(yu)標(biao)(biao)(biao)識該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)數(shu)據(ju)的標(biao)(biao)(biao)識信息(xi)的目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志,并向(xiang)該(gai)(gai)第(di)二存(cun)(cun)儲設備(bei)(bei)發送該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志,第(di)二存(cun)(cun)儲設備(bei)(bei)鏡像存(cun)(cun)儲該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志,且鏡像存(cun)(cun)儲該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志不需(xu)要(yao)配置(zhi)內(nei)存(cun)(cun)索(suo)引,這樣(yang)第(di)一存(cun)(cun)儲設備(bei)(bei)生成(cheng)包括標(biao)(biao)(biao)識目(mu)(mu)(mu)標(biao)(biao)(biao)數(shu)據(ju)的標(biao)(biao)(biao)識信息(xi)的目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志,第(di)二存(cun)(cun)儲設備(bei)(bei)可以存(cun)(cun)儲目(mu)(mu)(mu)標(biao)(biao)(biao)日(ri)志不需(xu)要(yao)配置(zhi)內(nei)存(cun)(cun)索(suo)引,從而減少了對第(di)二存(cun)(cun)儲設備(bei)(bei)的CPU的占用(yong)。
根據(ju)本申(shen)請實(shi)施例的(de)存(cun)儲(chu)系(xi)統900可對(dui)應(ying)于根據(ju)本申(shen)請實(shi)施例圖7或圖8的(de)數據(ju)存(cun)儲(chu)的(de)方(fang)法(fa)的(de)存(cun)儲(chu)系(xi)統,并(bing)且(qie)存(cun)儲(chu)系(xi)統900中的(de)各個(ge)模塊(kuai)的(de)上述和其它操作和/或功能分別為(wei)了實(shi)現(xian)前述各個(ge)方(fang)法(fa)的(de)相應(ying)流程,為(wei)了簡潔(jie),在此(ci)不再贅述。
圖(tu)10示出了本申請的(de)(de)(de)實施例(li)(li)提供(gong)的(de)(de)(de)存(cun)儲(chu)(chu)(chu)系統的(de)(de)(de)結構,包括至(zhi)少(shao)(shao)一(yi)個處(chu)理器(qi)1002(例(li)(li)如(ru)CPU),至(zhi)少(shao)(shao)一(yi)個網(wang)絡接(jie)口(kou)1005或者其他(ta)通信(xin)(xin)接(jie)口(kou),至(zhi)少(shao)(shao)一(yi)個存(cun)儲(chu)(chu)(chu)器(qi)1006,和至(zhi)少(shao)(shao)一(yi)個通信(xin)(xin)總線1003,用于實現這些裝置之間的(de)(de)(de)連接(jie)通信(xin)(xin)。處(chu)理器(qi)1002用于執行存(cun)儲(chu)(chu)(chu)器(qi)1006中存(cun)儲(chu)(chu)(chu)的(de)(de)(de)可執行模塊,例(li)(li)如(ru)計算機(ji)程序。存(cun)儲(chu)(chu)(chu)器(qi)1006可能包含(han)高(gao)速隨機(ji)存(cun)取存(cun)儲(chu)(chu)(chu)器(qi)(Random Access Memory,RAM),也可能還包括非不穩定的(de)(de)(de)存(cun)儲(chu)(chu)(chu)器(qi)(non-volatile memory),例(li)(li)如(ru)至(zhi)少(shao)(shao)一(yi)個磁盤(pan)存(cun)儲(chu)(chu)(chu)器(qi)。通過(guo)至(zhi)少(shao)(shao)一(yi)個網(wang)絡接(jie)口(kou)1005(可以是有線或者無線)實現與至(zhi)少(shao)(shao)一(yi)個其他(ta)網(wang)元之間的(de)(de)(de)通信(xin)(xin)連接(jie)。
在一(yi)些實施方式中,存(cun)儲器(qi)1006存(cun)儲了程序(xu)10061,處(chu)理器(qi)1002執(zhi)行程序(xu)10061,用(yong)于執(zhi)行以下操作:
通過網絡接(jie)口1005接(jie)收寫請求(qiu)消(xiao)息(xi),該寫請求(qiu)消(xiao)息(xi)攜帶目(mu)標(biao)數據;
根(gen)據該目(mu)標數(shu)據,生成(cheng)目(mu)標日志,該目(mu)標日志包括(kuo)該目(mu)標數(shu)據和用于標識(shi)該目(mu)標數(shu)據的(de)標識(shi)信息;
通過網絡接口1005向第二存儲設備(bei)發送該(gai)目(mu)標日(ri)志;
存儲所(suo)述目標(biao)日(ri)志,且所(suo)述存儲所(suo)述目標(biao)日(ri)志不需要配(pei)置(zhi)內存索(suo)引。
需要說明的(de)是,該存儲系(xi)統可以用于執(zhi)行(xing)上述圖(tu)7或圖(tu)8所示的(de)方(fang)法實施例中的(de)各個步驟和/或流程(cheng)。
從本申請實施例(li)提供的(de)(de)以上(shang)技術方案可以看出,第(di)(di)一存(cun)(cun)儲(chu)設(she)備(bei)通過(guo)接收攜(xie)帶目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)數(shu)據的(de)(de)寫(xie)(xie)請求消(xiao)息,根據該(gai)(gai)寫(xie)(xie)請求消(xiao)息中的(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)數(shu)據生成(cheng)包(bao)括(kuo)該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)數(shu)據和用于(yu)標(biao)(biao)(biao)(biao)(biao)(biao)識(shi)(shi)該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)數(shu)據的(de)(de)標(biao)(biao)(biao)(biao)(biao)(biao)識(shi)(shi)信(xin)息的(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi),并(bing)向該(gai)(gai)第(di)(di)二存(cun)(cun)儲(chu)設(she)備(bei)發送(song)該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi),第(di)(di)二存(cun)(cun)儲(chu)設(she)備(bei)鏡(jing)像存(cun)(cun)儲(chu)該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi),且鏡(jing)像存(cun)(cun)儲(chu)該(gai)(gai)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi)不需要配置(zhi)內(nei)存(cun)(cun)索引(yin),這樣第(di)(di)一存(cun)(cun)儲(chu)設(she)備(bei)生成(cheng)包(bao)括(kuo)標(biao)(biao)(biao)(biao)(biao)(biao)識(shi)(shi)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)數(shu)據的(de)(de)標(biao)(biao)(biao)(biao)(biao)(biao)識(shi)(shi)信(xin)息的(de)(de)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi),第(di)(di)二存(cun)(cun)儲(chu)設(she)備(bei)可以存(cun)(cun)儲(chu)目(mu)(mu)(mu)標(biao)(biao)(biao)(biao)(biao)(biao)日(ri)志(zhi)(zhi)不需要配置(zhi)內(nei)存(cun)(cun)索引(yin),從而(er)減少(shao)了對(dui)第(di)(di)二存(cun)(cun)儲(chu)設(she)備(bei)的(de)(de)CPU的(de)(de)占(zhan)用。
本申(shen)請實施(shi)例還(huan)提供一種計(ji)算機(ji)存儲(chu)介(jie)質,該計(ji)算機(ji)存儲(chu)介(jie)質可以(yi)存儲(chu)用于指(zhi)示上述任一種方法的程(cheng)序指(zhi)令。
可選地(di),該存儲介質具體可以為存儲器1106。
應(ying)理(li)(li)解,本申請(qing)中的具體(ti)的例(li)子只是為了(le)幫助本領域技(ji)術人(ren)員(yuan)更好地理(li)(li)解本申請(qing)實(shi)施例(li),而非限制(zhi)本申請(qing)實(shi)施例(li)的范圍。
應理解,本文(wen)中(zhong)術語“和(he)(he)/或”,僅僅是一(yi)(yi)種(zhong)描(miao)述關聯(lian)(lian)對(dui)象(xiang)的(de)關聯(lian)(lian)關系(xi),表示可(ke)以(yi)存(cun)(cun)在(zai)三種(zhong)關系(xi),例(li)如(ru),A和(he)(he)/或B,可(ke)以(yi)表示:單獨存(cun)(cun)在(zai)A,同時存(cun)(cun)在(zai)A和(he)(he)B,單獨存(cun)(cun)在(zai)B這三種(zhong)情況。另外,本文(wen)中(zhong)字符(fu)“/”,一(yi)(yi)般表示前后關聯(lian)(lian)對(dui)象(xiang)是一(yi)(yi)種(zhong)“或”的(de)關系(xi)。
應理解,在(zai)本(ben)申(shen)請的各種實(shi)施(shi)(shi)例(li)中,上述各過程的序(xu)號的大(da)小并不意味著執行(xing)順(shun)(shun)序(xu)的先后,各過程的執行(xing)順(shun)(shun)序(xu)應以其功能(neng)和內(nei)在(zai)邏輯確定,而不應對本(ben)申(shen)請實(shi)施(shi)(shi)例(li)的實(shi)施(shi)(shi)過程構成任何限定。
本領域普通技(ji)術人員(yuan)可以(yi)(yi)意(yi)識到(dao),結(jie)合(he)本文(wen)中所公(gong)開的(de)(de)(de)實施例描(miao)述的(de)(de)(de)各示例的(de)(de)(de)單元及算(suan)法(fa)步驟,能夠以(yi)(yi)電(dian)子硬件(jian)(jian)(jian)、或者計算(suan)機軟件(jian)(jian)(jian)和電(dian)子硬件(jian)(jian)(jian)的(de)(de)(de)結(jie)合(he)來(lai)實現(xian)。這(zhe)些功能究竟以(yi)(yi)硬件(jian)(jian)(jian)還是軟件(jian)(jian)(jian)方(fang)式(shi)來(lai)執行,取(qu)決于技(ji)術方(fang)案(an)的(de)(de)(de)特(te)定應用(yong)和設(she)計約(yue)束條(tiao)件(jian)(jian)(jian)。專業技(ji)術人員(yuan)可以(yi)(yi)對(dui)每個(ge)特(te)定的(de)(de)(de)應用(yong)來(lai)使用(yong)不同(tong)方(fang)法(fa)來(lai)實現(xian)所描(miao)述的(de)(de)(de)功能,但是這(zhe)種實現(xian)不應認為超出本申請的(de)(de)(de)范圍。
所(suo)屬領域的技術人員可以(yi)清楚(chu)地了解到,為描述(shu)的方便和簡潔,上述(shu)描述(shu)的系統、裝置和單元的具(ju)體(ti)工作過程(cheng),可以(yi)參考前(qian)述(shu)方法(fa)實施例(li)中的對應過程(cheng),在此不再贅(zhui)述(shu)。
在本申(shen)請(qing)所(suo)提供的(de)(de)幾個實(shi)施例中,應該(gai)(gai)理解到,所(suo)揭露的(de)(de)系(xi)統(tong)、裝(zhuang)置和方法,可(ke)(ke)以(yi)(yi)通(tong)過(guo)其它(ta)的(de)(de)方式實(shi)現(xian)。例如(ru),以(yi)(yi)上所(suo)描述的(de)(de)裝(zhuang)置實(shi)施例僅(jin)(jin)(jin)僅(jin)(jin)(jin)是示(shi)意性的(de)(de),例如(ru),該(gai)(gai)單元(yuan)的(de)(de)劃(hua)分,僅(jin)(jin)(jin)僅(jin)(jin)(jin)為(wei)一(yi)(yi)種邏輯功(gong)能劃(hua)分,實(shi)際實(shi)現(xian)時可(ke)(ke)以(yi)(yi)有(you)另(ling)外的(de)(de)劃(hua)分方式,例如(ru)多個單元(yuan)或(huo)(huo)(huo)(huo)組(zu)件可(ke)(ke)以(yi)(yi)結合(he)或(huo)(huo)(huo)(huo)者(zhe)可(ke)(ke)以(yi)(yi)集成到另(ling)一(yi)(yi)個系(xi)統(tong),或(huo)(huo)(huo)(huo)一(yi)(yi)些(xie)特征可(ke)(ke)以(yi)(yi)忽略,或(huo)(huo)(huo)(huo)不執行(xing)。另(ling)一(yi)(yi)點,所(suo)顯(xian)示(shi)或(huo)(huo)(huo)(huo)討論的(de)(de)相(xiang)互之間的(de)(de)耦合(he)或(huo)(huo)(huo)(huo)直接(jie)(jie)耦合(he)或(huo)(huo)(huo)(huo)通(tong)信連接(jie)(jie)可(ke)(ke)以(yi)(yi)是通(tong)過(guo)一(yi)(yi)些(xie)接(jie)(jie)口,裝(zhuang)置或(huo)(huo)(huo)(huo)單元(yuan)的(de)(de)間接(jie)(jie)耦合(he)或(huo)(huo)(huo)(huo)通(tong)信連接(jie)(jie),可(ke)(ke)以(yi)(yi)是電性,機械或(huo)(huo)(huo)(huo)其它(ta)的(de)(de)形(xing)式。
所述(shu)作為(wei)分離(li)部(bu)(bu)件說(shuo)明(ming)的(de)單元(yuan)可(ke)(ke)(ke)以(yi)(yi)(yi)是或(huo)者也可(ke)(ke)(ke)以(yi)(yi)(yi)不(bu)是物理(li)上(shang)分開(kai)的(de),作為(wei)單元(yuan)顯示的(de)部(bu)(bu)件可(ke)(ke)(ke)以(yi)(yi)(yi)是或(huo)者也可(ke)(ke)(ke)以(yi)(yi)(yi)不(bu)是物理(li)單元(yuan),即(ji)可(ke)(ke)(ke)以(yi)(yi)(yi)位于一個地方(fang),或(huo)者也可(ke)(ke)(ke)以(yi)(yi)(yi)分布到多個網絡(luo)單元(yuan)上(shang)。可(ke)(ke)(ke)以(yi)(yi)(yi)根據實際的(de)需要選擇其(qi)中的(de)部(bu)(bu)分或(huo)者全部(bu)(bu)單元(yuan)來實現本實施例方(fang)案(an)的(de)目的(de)。
另外,在(zai)(zai)本申請各(ge)個(ge)實施例中的(de)各(ge)功能單(dan)元(yuan)可以(yi)(yi)(yi)(yi)集成(cheng)在(zai)(zai)一個(ge)處理單(dan)元(yuan)中,也(ye)(ye)可以(yi)(yi)(yi)(yi)是各(ge)個(ge)單(dan)元(yuan)單(dan)獨物理存在(zai)(zai),也(ye)(ye)可以(yi)(yi)(yi)(yi)兩個(ge)或(huo)兩個(ge)以(yi)(yi)(yi)(yi)上(shang)單(dan)元(yuan)集成(cheng)在(zai)(zai)一個(ge)單(dan)元(yuan)中。上(shang)述集成(cheng)的(de)單(dan)元(yuan)既可以(yi)(yi)(yi)(yi)采(cai)用(yong)硬(ying)件的(de)形(xing)式實現(xian),也(ye)(ye)可以(yi)(yi)(yi)(yi)采(cai)用(yong)軟件功能單(dan)元(yuan)的(de)形(xing)式實現(xian)。
所述集成(cheng)的(de)(de)單(dan)元如果以(yi)軟件功能單(dan)元的(de)(de)形(xing)式實現并作為獨立的(de)(de)產(chan)品(pin)銷售或使用(yong)時,可以(yi)存(cun)(cun)儲(chu)(chu)在(zai)一(yi)個計(ji)算(suan)機(ji)可讀取存(cun)(cun)儲(chu)(chu)介質(zhi)(zhi)中。基于這樣(yang)的(de)(de)理解(jie),本(ben)申(shen)請(qing)的(de)(de)技術方案本(ben)質(zhi)(zhi)上或者說對現有技術做出貢獻的(de)(de)部分或者該(gai)技術方案的(de)(de)部分可以(yi)以(yi)軟件產(chan)品(pin)的(de)(de)形(xing)式體現出來,該(gai)計(ji)算(suan)機(ji)軟件產(chan)品(pin)存(cun)(cun)儲(chu)(chu)在(zai)一(yi)個存(cun)(cun)儲(chu)(chu)介質(zhi)(zhi)中,包(bao)括若(ruo)干(gan)指令用(yong)以(yi)使得一(yi)臺(tai)計(ji)算(suan)機(ji)設備(bei)(可以(yi)是個人計(ji)算(suan)機(ji),服務器(qi),或者網絡設備(bei)等)執行(xing)本(ben)申(shen)請(qing)各(ge)個實施例所述方法的(de)(de)全部或部分步驟。而前述的(de)(de)存(cun)(cun)儲(chu)(chu)介質(zhi)(zhi)包(bao)括:U盤、移動硬盤、只讀存(cun)(cun)儲(chu)(chu)器(qi)(ROM,Read-Only Memory)、隨機(ji)存(cun)(cun)取存(cun)(cun)儲(chu)(chu)器(qi)(RAM,Random Access Memory)、磁碟或者光盤等各(ge)種可以(yi)存(cun)(cun)儲(chu)(chu)程(cheng)序代碼的(de)(de)介質(zhi)(zhi)。
以(yi)上所述,僅為(wei)本(ben)申(shen)請的(de)具(ju)體實施方式,但本(ben)申(shen)請的(de)保護范(fan)(fan)圍并不局限于此(ci),任何熟悉本(ben)技(ji)術(shu)領域的(de)技(ji)術(shu)人員(yuan)在(zai)本(ben)申(shen)請揭露的(de)技(ji)術(shu)范(fan)(fan)圍內(nei),可(ke)輕易想到變化或(huo)替換,都應涵蓋在(zai)本(ben)申(shen)請的(de)保護范(fan)(fan)圍之內(nei)。因此(ci),本(ben)申(shen)請的(de)保護范(fan)(fan)圍應以(yi)該(gai)權利(li)要求的(de)保護范(fan)(fan)圍為(wei)準。