亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于iscsi的全盤復(fù)制方法及存儲系統(tǒng)的制作方法

文檔序號:6429466閱讀:225來源:國知局
專利名稱:基于iscsi的全盤復(fù)制方法及存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及以iSCSI磁盤為基礎(chǔ)的企業(yè)級存儲系統(tǒng)實現(xiàn)全盤復(fù)制的方法,尤其涉及一種基于ISCSI的全盤復(fù)制方法及存儲系統(tǒng)。
背景技術(shù)
iSCSI 是由 IETF (Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)開發(fā)的網(wǎng)絡(luò)存儲標(biāo)準(zhǔn),目的是為了用IP協(xié)議將存儲設(shè)備連接在一起。通過在IP網(wǎng)上傳送SCSI命令和數(shù)據(jù),iSCSI推動了數(shù)據(jù)在網(wǎng)際之間的傳遞,同時也促進(jìn)了數(shù)據(jù)的遠(yuǎn)距離管理。由于其出色的數(shù)據(jù)傳輸能力,iSCSI協(xié)議被認(rèn)為是促進(jìn)存儲區(qū)域網(wǎng)絡(luò)(Storage Area Network,簡稱SAN)市場快速發(fā)展的關(guān)鍵因素之一。因為IP網(wǎng)絡(luò)的廣泛應(yīng)用,iSCSI能夠在LAN (LocalArea Network,局域網(wǎng))、WAN(Wide Area Network,廣域網(wǎng))甚至 internet 上進(jìn)行數(shù)據(jù)傳送,使得數(shù)據(jù)的存儲不再受地域的限制。 iSCSI協(xié)議根據(jù)角色不同,分為發(fā)起端和目標(biāo)端。出于性能的考慮,有些廠商已經(jīng)采用專用的板卡來處理發(fā)起端的TCP/IP和iSCSI協(xié)議,即iSCSI的HBA (Host Bus Adapter,主機總線適配器)卡。但是在目標(biāo)端(Target),各個存儲廠商基本采用PC(PersonalComputer,個人計算機)組成iSCSI的存儲架構(gòu),即存儲設(shè)備建立在PC服務(wù)器的基礎(chǔ)上,也就是選擇一個普通的、性能優(yōu)良的、可支持多塊硬盤的PC( —般為PC服務(wù)器和工控服務(wù)器),選擇一款相對成熟穩(wěn)定的iSCSI Target (iSCSI目標(biāo)端)軟件,將iSCSI Target軟件安裝在PC服務(wù)器上,使普通的PC服務(wù)器轉(zhuǎn)變成一臺連接多個硬盤的iSCSI存儲設(shè)備,并通過PC服務(wù)器的以太網(wǎng)卡對外提供iSCSI數(shù)據(jù)傳輸協(xié)議。在PC架構(gòu)的iSCSI存儲設(shè)備上,所有的RAID (Redundant Array of Independent Disk,獨立冗余磁盤陣列)組校驗、邏輯卷管理、iSCSI運算、TCP/IP運算等都是以純軟件方式實現(xiàn)(當(dāng)然也有些設(shè)備采用價格較高的T0E(TCP Offload Engine,傳輸控制協(xié)議卸載引擎)網(wǎng)卡實現(xiàn)TCP/IP運算)。因此對PC的CPU和內(nèi)存的性能要求較高。另外iSCSI存儲設(shè)備的性能極容易受PC服務(wù)器運行狀態(tài)的影響。企業(yè)級存儲系統(tǒng)的數(shù)據(jù)讀出和寫入是采用數(shù)據(jù)塊的方式進(jìn)行。為保證數(shù)據(jù)的安全性,通常要對寫入磁盤陣列的數(shù)據(jù)塊進(jìn)行雙重或更多重的復(fù)制備份,以防數(shù)據(jù)因硬盤損壞(高概率事件)而丟失。目前的企業(yè)級存儲產(chǎn)品在進(jìn)行數(shù)據(jù)復(fù)制時,基本采用系統(tǒng)內(nèi)部磁盤鏡像的方式對數(shù)據(jù)進(jìn)行保護。例如EMC和IBM公司的企業(yè)級存儲設(shè)備。當(dāng)系統(tǒng)中出現(xiàn)硬盤損壞時,系統(tǒng)一般都會提供一部份空白的備用硬盤進(jìn)行自我修復(fù)。在系統(tǒng)復(fù)原時,目前的企業(yè)級存儲依靠存儲管理控制服務(wù)器(IPSAN控制服務(wù)器)進(jìn)行數(shù)據(jù)的傳輸,即由IPSAN控制服務(wù)器將數(shù)據(jù)依次讀出,再依次寫入空白盤,從而完成復(fù)制過程。因此,IPSAN控制服務(wù)器需要多次在不同的iSCSI磁盤間完成存儲、轉(zhuǎn)發(fā)造成復(fù)制延遲和資源占用;加重了 IPSAN控制服務(wù)器的負(fù)擔(dān),對IPSAN控制服務(wù)器的設(shè)備要求比較高
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于ISCSI的全盤復(fù)制方法及存儲系統(tǒng),其在IPSAN控制服務(wù)器的指令下實現(xiàn)數(shù)據(jù)的全盤復(fù)制復(fù)制,避免了數(shù)據(jù)通過IPSAN控制服務(wù)器存儲和轉(zhuǎn)發(fā)造成的復(fù)制延遲和資源占用。上述目的通過下述技術(shù)方案實現(xiàn)一種基于ISCSI的全盤復(fù)制方法,其特征在于包括以下步驟步驟SlOO IPSAN控制服務(wù)器生成全盤復(fù)制命令cmd (N),并將復(fù)制命令cmd (N, s)發(fā)送至主動ISCSI硬盤陣列A(N)中每個主動ISCSI硬盤A(N,s);其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像,N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,s e {O,1,2,...,N-1};復(fù)制命令cmd(N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A(N,s)的 復(fù)制命令;全盤復(fù)制命令cmd (N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合;步驟S200 :每個主動ISCSI硬盤A (N,s)根據(jù)復(fù)制命令cmd (N,s),將其設(shè)定區(qū)域復(fù)制到被動ISCSI硬盤陣列B(M)中的M個被動ISCSI硬盤;每個主動ISCSI硬盤的設(shè)定區(qū)域各不相同,N個主動ISCSI硬盤A(N,s)的設(shè)定區(qū)域的集合為主動ISCSI硬盤A(N,s)的
全盤;其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動硬盤,i e {0,1,2, .. .,M-1}。上述目的通過下述技術(shù)方案實現(xiàn)一種基于ISCSI的存儲系統(tǒng),其特征在于包括存儲單元和備份單元;所述存儲單元包括IPSAN控制服務(wù)器,第一以太網(wǎng)交換機和主動ISCSI硬盤陣列A(N);其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像,N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,s e {0,1,2,...,N-1};復(fù)制命令cmd(N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A (N,s)的復(fù)制命令;全盤復(fù)制命令cmd (N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合;所述備份單元包括第二以太網(wǎng)交換機和被動ISCSI硬盤陣列B(M);其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動硬盤,i e {0,1,2,· · ·,M-1};
所述IPSAN控制服務(wù)器,N個主動ISCSI硬盤和M個被動ISCSI硬盤分別與第一以太網(wǎng)交換機和第二以太網(wǎng)交換機連接;所述IPSAN控制服務(wù)器,通過第一以太網(wǎng)交換機和/或第二以太網(wǎng)交換機,實現(xiàn)與主動ISCSI硬盤的非數(shù)據(jù)通信;主動ISCSI硬盤根據(jù)非數(shù)據(jù)通信將主動ISCSI硬盤全盤復(fù)制到M個被動ISCSI硬盤。本發(fā)明的基于ISCSI的全盤復(fù)制方法和存儲系統(tǒng),每一個ISCSI硬盤通過以太網(wǎng)交換機互聯(lián),且所采用的ISCSI硬盤具有數(shù)據(jù)轉(zhuǎn)發(fā)邏輯功能,這使得ISCSI硬盤之間可以通過以太網(wǎng)交換機進(jìn)行端口對端口無阻塞通訊,在IPSAN控制服務(wù)器的指令下實現(xiàn)數(shù)據(jù)的全盤復(fù)制,避免了數(shù)據(jù)通過IPSAN控制服務(wù)器存儲和轉(zhuǎn)發(fā)造成 的復(fù)制延遲和資源占用。


圖I是本發(fā)明的基于ISCSI的全盤復(fù)制方法中主動ISCSI硬盤將其設(shè)定區(qū)域復(fù)制到M個被動ISCSI硬盤的流程示意圖;圖2是本發(fā)明的基于ISCSI的存儲系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明的基于ISCSI的全盤復(fù)制方法和存儲系統(tǒng)進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實施例一本發(fā)明的一種基于ISCSI的全盤復(fù)制方法,包括以下步驟步驟SlOO IPSAN控制服務(wù)器生成全盤復(fù)制命令cmd (N),并將復(fù)制命令cmd (N, s)發(fā)送至主動ISCSI硬盤陣列A(N)中每個主動ISCSI硬盤A(N,s);其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像(即每個主動ISCSI硬盤的內(nèi)容完全相同),N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,se {0,1,2,. . .,N-1};復(fù)制命令cmd (N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A (N,s)的復(fù)制命令;全盤復(fù)制命令cmd (N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合;步驟S200 :每個主動ISCSI硬盤A (N,s)根據(jù)復(fù)制命令cmd (N,s),將其設(shè)定區(qū)域復(fù)制到被動ISCSI硬盤陣列B(M)中的M個被動ISCSI硬盤;每個主動ISCSI硬盤的設(shè)定區(qū)域各不相同,N個主動ISCSI硬盤A(N,s)的設(shè)定區(qū)域的集合為主動ISCSI硬盤A(N,s)的全盤(即全盤復(fù)制完成后,M個被動ISCSI硬盤和N個主動ISCSI硬盤的內(nèi)容完全相同;全盤復(fù)制是機械復(fù)制,不考慮主動ISCSI硬盤的數(shù)據(jù));其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動硬盤,i e {0,1,2, ... , M-1} ο優(yōu)選的,在步驟SlOO中,全盤復(fù)制命令cmd (N)包括每次復(fù)制操作的長度L和ISCSI硬盤的容量C ;其中,每次復(fù)制操作的長度L表示每次復(fù)制操作復(fù)制L個LBA ;ISCSI硬盤的容量C表示ISCSI磁盤的容量是C個LBA,ISCSI硬盤內(nèi)C個LBA編號為0,1,2,...,C-I ;其中,LBA即邏輯塊地址Logical Block Address,簡稱LBA ;現(xiàn)在的硬盤通過這種邏輯地址確定數(shù)據(jù)存放在磁碟上的位置,也是訪問硬盤的顆粒度,即最小讀寫單位。一般來說,一個LBA包含512字節(jié)的數(shù)據(jù);新的大容量硬盤的LBA包含4096字節(jié)的數(shù)據(jù);如圖I所示,步驟S200包括以下步驟步驟S201 :主動ISCSI硬盤A (N,s)接收到復(fù)制命令cmd (N,s);
步驟S202 :主動ISCSI硬盤A (N,s)確定復(fù)制的最初的起始地址a,a = sL ;表示對主動ISCSI硬盤A (N,S)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始;步驟S203 :主動ISCSI硬盤A (N,s)準(zhǔn)備數(shù)據(jù)d (a);數(shù)據(jù)d(a)表示從起始地址a開始的L個LBA的數(shù)據(jù);數(shù)據(jù)d(a)包括主動ISCSI硬盤內(nèi)的編號為a,a+l,a+2,...,a+(L_l)的L個LBA的數(shù)據(jù)(即對于主動ISCSI硬盤A(N,s)來說,每次準(zhǔn)備的數(shù)據(jù)量是L個LBA ;對于主動ISCSI硬盤陣列A(N)整體來說,每次準(zhǔn)備的數(shù)據(jù)量是LXN個LBA);注意,L大小要適當(dāng),太小會增加協(xié)議開銷,太大則增加重傳的代價。在網(wǎng)絡(luò)傳輸有保障的系統(tǒng)中(例如局域網(wǎng)),L應(yīng)在合理范圍內(nèi)盡可能大。步驟S204 :對i初始化,i = O ;其中,i是被動ISCSI硬盤在被動ISCSI硬盤陣列B(M)中編號,i = O表示主動ISCSI硬盤A (N,s)控制寫入從編號為O的被動ISCSI硬盤開始;步驟S205 :主動ISCSI硬盤A (N,s)向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s,i,d(a));其中,信息msg(s,i,d(a))表示主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B(M,i)發(fā)送的信息,包括數(shù)據(jù)d (a);步驟S206 :判斷i < M是否成立,(即判斷被動ISCSI硬盤B(M,i)是否是被動ISCSI硬盤B(M)的編號為最后一個的被動ISCSI硬盤)在i < M成立的情況下(即被動ISCSI硬盤B (M,i)不是被動ISCSI硬盤B (M)的編號為最后一個的被動ISCSI硬盤的情況下),運行步驟S206';步驟S206' i = i+1 ;然后運行步驟S205 ;在i < M不成立的情況下(即被動ISCSI硬盤B (M,i)是被動ISCSI硬盤B (M)的編號為最后一個的被動ISCSI硬盤的情況下),運行步驟S207 ;步驟S207 :判斷a是否小于C,在a < C成立的情況下,確定下一個起始地址a,a = a+NL ;運行步驟S203 ;(即跳轉(zhuǎn)到下一個起始地址,開始將下一個L個LBA數(shù)據(jù)復(fù)制)在a < C不成立的情況下,運行步驟S208 ;步驟S208 :主動ISCSI硬盤A (N,s)結(jié)束復(fù)制,并將復(fù)制情況告知IPSAN控制服務(wù)器。下面以一個實例對每個主動ISCSI硬盤的起始地址和要準(zhǔn)備的數(shù)據(jù)進(jìn)行說明
N = 3, s e {0,1,2} ;C = 32 ;L = 4 ;主動ISCSI 硬盤陣列 A (3)中包括 3 個主動 ISCSI 硬盤A(3,0),A(3,I),A(3,2)。主動ISCSI 硬盤 A (3,0):要準(zhǔn)備的起始地址列表是{0,12,24};即當(dāng)a = O時,主動ISCSI硬盤A陣列(3,0)準(zhǔn)備數(shù)據(jù)d(O);數(shù)據(jù)d(0)表示從O開始的4個LBA的數(shù)據(jù);數(shù)據(jù)d(0)包括主動ISCSI硬盤內(nèi)的編號為0,1,2,3的4個LBA的數(shù)據(jù);當(dāng)a = 12, 24 時,同理。主動ISCSI 硬盤 A (3,I) 要準(zhǔn)備的起始地址列表是{4,16,28};即當(dāng)a = 4時,主動ISCSI硬盤A陣列(3,I)準(zhǔn)備數(shù)據(jù)d(4);數(shù)據(jù)d(4)表示從4開始的4個LBA的數(shù)據(jù);數(shù)據(jù)d (4)包括主動ISCSI硬盤內(nèi)的編號為4,5,6,7的4個LBA的數(shù)據(jù);當(dāng)a = 16, 28 時,同理。主動ISCSI 硬盤 A (3,2):要準(zhǔn)備的起始地址列表是{8,20}:當(dāng)a = 8時,主動ISCSI硬盤A陣列(3,2)準(zhǔn)備數(shù)據(jù)d (8);數(shù)據(jù)d(8)表示從4開始的4個LBA的數(shù)據(jù);數(shù)據(jù)d(8)包括主動ISCSI硬盤內(nèi)的編號為8,9,10,11的4個LBA的數(shù)據(jù)。優(yōu)選的,在i < M不成立的情況下,還包括以下步驟步驟S206-1 :主動ISCSI硬盤A(N,s)等待狀態(tài)信息rsp (*,s,a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B (Μ, *)發(fā)送給主動ISCSI硬盤A(N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), . . . , rsp (M-1, s, a);步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp(*,s, a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,S,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入;在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時(即每次準(zhǔn)備的數(shù)據(jù)沒有成功寫入到每一個被動ISCSI硬盤時)運行步驟S206-3 ;步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B(M,x)發(fā)送數(shù)據(jù)msg(s, x, d(a))是否達(dá)到E次x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;沒有達(dá)到E次的情況下,則運行步驟S206-4 ;步驟S206-4 :主動 ISCSI 硬盤 A (N,s)向被動 ISCSI 硬盤 B(M,x)發(fā)送 msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ;達(dá)到E次的情況下,運行步驟S206-5 ;
步驟S206-5 :主動ISCSI硬盤A(N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,X)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S205。優(yōu)選的,在步驟S204后還包括步驟S204-1 步驟S204-1 :判斷編號為i的被動ISCSI硬盤是否發(fā)生故障;在發(fā)生故障時,i = i+Ι ;運行步驟S204-1 ;在沒有發(fā)生故障時,運行步驟S205及步驟S206 ;在步驟S206中,在i < M成立的情況下,運行步驟S206';在步驟S206'之后,運行步驟S204-1 ;
其中,在第一次向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s,i,d(a)之前,被動ISCSI硬盤B(M,i)是沒有發(fā)生故障的。優(yōu)選的,在i < M不成立的情況下,還包括以下步驟步驟S206-1 :主動ISCSI硬盤A(N,s)等待狀態(tài)信息rsp (*,s,a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B (Μ, *)發(fā)送給主動ISCSI硬盤A(N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), . . . , rsp (M-1, s, a);步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp(*,s, a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,S,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入;在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時(即每次準(zhǔn)備的數(shù)據(jù)沒有成功寫入到每一個被動ISCSI硬盤時)運行步驟206-3 ;步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s, x, d(a))是否達(dá)到E次x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù);沒有達(dá)到E次的情況下,則運行步驟S206-4 ;步驟S206-4 :主動 ISCSI 硬盤 A (N,s)向被動 ISCSI 硬盤 B(M,x)發(fā)送 msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ;達(dá)到E次的情況下,運行步驟S206-5 ;步驟S206-5 :主動ISCSI硬盤A(N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,X)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S204-1。優(yōu)選的,在步驟SlOO中,IPSAN控制服務(wù)器將復(fù)制命令cmd (N,s)發(fā)送至以太網(wǎng)交換機,以太網(wǎng)交換機根據(jù)每個主動ISCSI硬盤的IP地址將復(fù)制命令cmd (N,s)通過以太網(wǎng)交換機發(fā)送至主動ISCSI硬盤;全盤復(fù)制命令cmd (N)還包括主動ISCSI硬盤的IP地址和該主動ISCSI硬盤在主動ISCSI硬盤陣列A(N)中的編號S ;步驟S205中,主動ISCSI硬盤A(N,s)通過以太網(wǎng)交換機向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s, i, d(a));信息msg(s,i, d(a))還包括被動ISCSI硬盤陣列B(M)中每個ISCSI硬盤的IP地址;其中,全盤復(fù)制命令cmd (N)還包括被動ISCSI硬盤陣列B(M)中每個ISCSI硬盤的IP地址。優(yōu)選的,在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,需要在主動ISCSI硬盤A(N,#)新寫入數(shù)據(jù)時,還包括步驟S300 ;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A (N, #)的位置是IPSAN控制服務(wù)器為存儲需要新寫入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表示;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A (N, #)的位置是IPSAN控制服務(wù)器為存儲需要新寫 入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表示;#為通配符,表示任何有效值,有效值的集合為{0,1,2,...,N-1};步驟S300包括以下步驟步驟S301 =IPSAN控制服務(wù)器控制將需要新寫入的數(shù)據(jù)F和數(shù)據(jù)F在主動ISCSI硬盤A(N,#)的位置Fa寫入應(yīng)急ISCSI硬盤,應(yīng)急ISCSI硬盤用D表示(即在此步驟中,并沒有將數(shù)據(jù)F實際寫入主動ISCSI硬盤A (N, #)的位置Fa ;而是將數(shù)據(jù)F和位置Fa實際寫入應(yīng)急ISCSI硬盤);其中,應(yīng)急ISCSI硬盤是在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,存儲新寫入的數(shù)據(jù)F和位置Fa的ISCSI硬盤;步驟S302 :全盤復(fù)制結(jié)束后,IPSAN控制服務(wù)器對N賦值,N = N+M ;步驟S303 =IPSAN控制服務(wù)器命令應(yīng)急ISCSI硬盤D根據(jù)位置Fa,將新寫入的數(shù)據(jù)F復(fù)制到主動ISCSI硬盤陣列A(N)中的每一個ISCSI硬盤的對應(yīng)的位置Fa (即在此步驟中,將數(shù)據(jù)F實際寫入主動ISCSI硬盤陣列A (N)中的每一個ISCSI硬盤的對應(yīng)的位置Fa)。實施例二本發(fā)明的一種基于ISCSI的存儲系統(tǒng),如圖I所示,包括存儲單元和備份單元;所述存儲單元包括IPSAN控制服務(wù)器,第一以太網(wǎng)交換機和主動ISCSI硬盤陣列A(N);其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像(即每個主動ISCSI硬盤的內(nèi)容完全相同),N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,se {0,1,2,. . .,N-1};復(fù)制命令cmd (N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A (N,s)的復(fù)制命令;全盤復(fù)制命令cmd (N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合;所述備份單元包括第二以太網(wǎng)交換機和被動ISCSI硬盤陣列B(M);其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動ISCSI硬盤,i e {0,1,2, , M-1};
所述IPSAN控制服務(wù)器,N個主動ISCSI硬盤和M個被動ISCSI硬盤分別與第一以太網(wǎng)交換機和第二以太網(wǎng)交換機連接;所述IPSAN控制服務(wù)器,通過第一以太網(wǎng)交換機和/或第二以太網(wǎng)交換機,實現(xiàn)與主動ISCSI硬盤的非數(shù)據(jù)通信;主動ISCSI硬盤根據(jù)非數(shù)據(jù)通信將主動ISCSI硬盤全盤復(fù)制到M個被動ISCSI硬盤(即全盤復(fù)制完成后,N個主動ISCSI硬盤和M個被動ISCSI硬盤的內(nèi)容完全相同)。優(yōu)選的,全盤復(fù)制命令cmd (N)包括主動ISCSI硬盤的IP地址和該主動ISCSI硬盤在主動ISCSI硬盤陣列A(N)中的編號S ;IPSAN控制服務(wù)器用于將復(fù)制命令通過第一以太網(wǎng)交換機或第二以太網(wǎng)交換機發(fā)送至主動ISCSI硬盤;以太網(wǎng)交換機根據(jù)每個主動ISCSI硬盤的IP地址確定主動ISCSI硬
盤。 優(yōu)選的,全盤復(fù)制命令cmd (N)還包括每次復(fù)制操作的長度L和ISCSI硬盤的容量C ;其中,每次復(fù)制操作的長度L表示每次復(fù)制操作復(fù)制L個LBA ;ISCSI硬盤的容量C表示ISCSI磁盤的容量是C個LBA,ISCSI硬盤內(nèi)C個LBA編號為0,1,2,. . .,C-I ;所述主動ISCSI硬盤A (N,s)用于根據(jù)自身編號s和L,確定復(fù)制的起始地址列表;所述主動ISCSI硬盤A(N,s)還用于根據(jù)起始地址列表中的每一個地址準(zhǔn)備起始地址及隨后一定區(qū)域的數(shù)據(jù);并將數(shù)據(jù)發(fā)送至M個被動ISCSI硬盤。其中,LBA即邏輯塊地址Logical Block Address,簡稱LBA ;現(xiàn)在的硬盤通過這種邏輯地址確定數(shù)據(jù)存放在磁碟上的位置,也是訪問硬盤的顆粒度,即最小讀寫單位。一般來說,一個LBA包含512字節(jié)的數(shù)據(jù);新的大容量硬盤的LBA包含4096字節(jié)的數(shù)據(jù)。優(yōu)選的,所述主動ISCSI硬盤A(N, s)確定復(fù)制的最初的起始地址a,a = sL ;表示對主動ISCSI硬盤A (N,s)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始;在a < C成立的情況下,a = a+NL。優(yōu)選的,所述主動ISCSI硬盤A(N,s)根據(jù)被動ISCSI硬盤的編號從小到大的順序依次將數(shù)據(jù)發(fā)送至M個被動ISCSI硬盤。優(yōu)選的,所述ISCSI硬盤包括控制芯片和硬盤,控制芯片用來實現(xiàn)對復(fù)制操作的控制,硬盤用來存儲數(shù)據(jù)。在圖2中,控制芯片用iSCSI T端卡表示,圖2所示實施例硬盤采用SATA硬盤。優(yōu)選的,主動ISCSI硬盤A (N,s)按照以下步驟運行步驟S201 :主動ISCSI硬盤A (N,s)接收到復(fù)制命令cmd (N,s);步驟S202 :主動ISCSI硬盤A(N, s)確定復(fù)制的最初的起始地址a, a = sL ;表示對主動ISCSI硬盤A (N,s)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始;步驟S203 :主動ISCSI硬盤A (N,s)準(zhǔn)備數(shù)據(jù)d (a);數(shù)據(jù)d(a)表示從起始地址a開始的L個LBA的數(shù)據(jù);數(shù)據(jù)d(a)包括主動ISCSI硬盤內(nèi)的編號為a,a+l,a+2,...,a+(L_l)的L個LBA的數(shù)據(jù)(即對于主動ISCSI硬盤A(N,s)來說,每次準(zhǔn)備的數(shù)據(jù)量是L個LBA ;對于主動ISCSI硬盤陣列A(N)整體來說,每次準(zhǔn)備的數(shù)據(jù)量是LXN個LBA);步驟S204 :對i初始化,i = O ;其中,i是被動ISCSI硬盤在被動ISCSI硬盤陣列B(M)中編號,i = O表示主動ISCSI硬盤A (N,s)控制寫入從編號為O的被動ISCSI硬盤開始;
步驟5205:主動15051硬盤六機s)向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s,i,d(a));其中,信息msg(s,i,d(a))表示主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B(M,i)發(fā)送的信息,包括數(shù)據(jù)d (a);步驟S206 :判斷i < M是否成立,在i <M成立的情況下,運行步驟S206';步驟206' i = i+1 ;然后運行步驟S205 ;在i < M不成立的情況下,運行步驟S207 ;步驟S207 :判斷a是否小于C,在a < C成立的情況下,確定下一個起始地址a,a = a+NL ;運行步驟S203 ;(即跳轉(zhuǎn)到下一個起始地址,開始將下一個L個LBA數(shù)據(jù)復(fù)制)在a < C不成立的情況下,運行步驟S208 ;步驟S208 :主動ISCSI硬盤A(N,s)結(jié)束復(fù)制,并將復(fù)制情況告知IPSAN控制服務(wù)器。
優(yōu)選的,主動ISCSI硬盤A (N,s)還包括以下步驟運行在i < M不成立的情況下,還包括以下步驟步驟S206-1 :主動ISCSI硬盤A (N,s)等待狀態(tài)信息rsp (*,s,a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B (Μ, *)發(fā)送給主動ISCSI硬盤A(N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., Μ-l};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), . . . , rsp (M-1, s, a);步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp(*,s, a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,S,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入;在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時(即每次準(zhǔn)備的數(shù)據(jù)沒有成功寫入到每一個被動ISCSI硬盤時)運行步驟S206-3 ;步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s, x, d(a))是否達(dá)到E次x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù);沒有達(dá)到E次的情況下,則運行步驟S206-4 ;步驟S206-4 :主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟 S206-1 ;達(dá)到E次的情況下,運行步驟S206-5 ;步驟S206-5 :主動ISCSI硬盤A(N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,X)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S205。優(yōu)選的,主動ISCSI硬盤A (N,s)還包括以下步驟運行
在步驟S204后還包括步驟204-1 步驟S204-1 :判斷編號為i的被動ISCSI硬盤是否發(fā)生故障;在發(fā)生故障時,i = i+Ι ;運行步驟S204-1 ;在沒有發(fā)生故障時,運行步驟S205及步驟S206 ;在步驟S206中,在i <M成立的情況下,運行步驟S206';在步驟S206'之后,運行步驟S204-1。優(yōu)選的,在i < MF成立的情況下,主動ISCSI硬盤A(N,s)還包括以下步驟步驟S206-1 :主動ISCSI硬盤A (N,s)等待狀態(tài)信息rsp (*,s,a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B (Μ, *)發(fā)送給主動ISCSI硬盤A(N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., Μ-l};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I, s, a), rsp (2, s, a), . . . , rsp (M-1, s, a);步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp(*,s, a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,S,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入;在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時(即每次準(zhǔn)備的數(shù)據(jù)沒有成功寫入到每一個被動ISCSI硬盤時)運行步驟S206-3 ;步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s, x, d(a))是否達(dá)到E次x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù);沒有達(dá)到E次的情況下,則運行步驟S206-4 ;步驟S206-4 :主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟 S206-1 ;達(dá)到E次的情況下,運行步驟S206-5 ;步驟S206-5 :主動ISCSI硬盤A(N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,X)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S204-1。優(yōu)選的,所述存儲系統(tǒng)還包括應(yīng)急ISCSI硬盤;所述應(yīng)急ISCSI硬盤與第一以太網(wǎng)交換機和第二以太網(wǎng)交換機連接;在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,需要在主動ISCSI硬盤A(N,#)新寫入數(shù)據(jù)時,還包括步驟S300;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A(N,#)的位置是IPSAN控制服務(wù)器為存儲需要新寫入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表示;#為通配符,表示任何有效值,有效值的集合為{0,1,2,···,N-1};步驟S300包括以下步驟步驟S301 =IPSAN控制服務(wù)器控制將需要新寫入的數(shù)據(jù)F和數(shù)據(jù)F在主動ISCSI硬盤A (N,#)的位置Fa寫入應(yīng)急ISCSI硬盤,應(yīng)急ISCSI硬盤用D表示;其中,應(yīng)急ISCSI硬盤是在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,存儲新寫入的數(shù)據(jù)F和位置Fa的ISCSI硬盤(即應(yīng)急ISCSI硬盤既不屬于主動ISCSI硬盤,也不屬于被動ISCSI硬盤);步驟S302 :全盤復(fù)制結(jié)束后,IPSAN控制服務(wù)器對N賦值,N = N+M ;步驟S303 =IPSAN控制服務(wù)器命令應(yīng)急ISCSI硬盤D根據(jù)位置Fa,將新寫入的數(shù)據(jù)F復(fù)制到主動ISCSI硬盤陣列A(N)中的每一個ISCSI硬盤的對應(yīng)的位置Fa。本發(fā)明的基于ISCSI的全盤復(fù)制方法和存儲系統(tǒng),每一個ISCSI硬盤通過以太網(wǎng)交換機互聯(lián),且所采用的ISCSI硬盤具有數(shù)據(jù)轉(zhuǎn)發(fā)邏輯功能,這使得ISCSI硬盤之間可以通過以太網(wǎng)交換機進(jìn)行端口對端口無阻塞通訊,在IPSAN控制服務(wù)器的指令下實現(xiàn)數(shù)據(jù)的全盤復(fù)制,避免了數(shù)據(jù)通過IPSAN控制服務(wù)器存儲和轉(zhuǎn)發(fā)造成的復(fù)制延遲和資源占用。 最后應(yīng)當(dāng)說明的是,很顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型。
權(quán)利要求
1.一種基于ISCSI的全盤復(fù)制方法,其特征在于包括以下步驟 步驟SlOO I PSAN控制服務(wù)器生成全盤復(fù)制命令cmd (N),并將復(fù)制命令cmd (N, s)發(fā)送至主動ISCSI硬盤陣列A(N)中每個主動ISCSI硬盤A (N,s); 其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像,N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,s e {0,1,2,...,N-1};復(fù)制命令cmd(N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A (N,s)的復(fù)制命令;全盤復(fù)制命令cmd (N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合;步驟S200 :每個主動ISCSI硬盤A (N,s)根據(jù)復(fù)制命令cmd (N,s),將其設(shè)定區(qū)域復(fù)制到被動ISCSI硬盤陣列B(M)中的M個被動ISCSI硬盤;每個主動ISCSI硬盤的設(shè)定區(qū)域各不相同,N個主動ISCSI硬盤A(N,s)的設(shè)定區(qū)域的集合為主動ISCSI硬盤A(N,s)的全盤;其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動硬盤,i e {0,1,2,...,M-1}。
2.根據(jù)權(quán)利要求I所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在步驟SlOO中,全盤復(fù)制命令cmd (N)包括每次復(fù)制操作的長度L和ISCSI硬盤的容量C ;其中,每次復(fù)制操作的長度L表示每次復(fù)制操作復(fù)制L個LBA ; ISCSI硬盤的容量C表示ISCSI磁盤的容量是C個LBA,ISCSI硬盤內(nèi)C個LBA編號為0,1,2,. . .,C-I ; 步驟S200包括以下步驟 步驟S201 :主動ISCSI硬盤A (N,s)接收到復(fù)制命令cmd (N,s); 步驟S202 :主動ISCSI硬盤A(N,s)確定復(fù)制的最初的起始地址a,a = sL ;表示對主動ISCSI硬盤A (N,s)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始; 步驟S203 :主動ISCSI硬盤A (N,s)準(zhǔn)備數(shù)據(jù)d(a);數(shù)據(jù)d(a)表示從起始地址a開始的L個LBA的數(shù)據(jù); 步驟S204 :對i初始化,i = O ;其中,i是被動ISCSI硬盤在被動ISCSI硬盤陣列B(M)中編號,i = O表示主動ISCSI硬盤A (N,s)控制寫入從編號為O的被動ISCSI硬盤開始;步驟3205:主動13031硬盤4(1 s)向被動ISCSI硬盤B (M,i)發(fā)送信息msg(s,i,d(a)); 其中,信息msg(s,i,d(a))表示主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B (M,i)發(fā)送的信息,包括數(shù)據(jù)d (a); 步驟S206 :判斷i < M是否成立, 在i < M成立的情況下,運行步驟S206'; 步驟S206' i = i+1 ;然后運行步驟S205 ; 在i < M不成立的情況下,運行步驟S207 ; 步驟S207 :判斷a是否小于C, 在a < C成立的情況下,確定下一個起始地址a, a = a+NL ;運行步驟S203 ;在a < C不成立的情況下,運行步驟S208 ; 步驟S208 :主動ISCSI硬盤A(N,s)結(jié)束復(fù)制,并將復(fù)制情況告知IPSAN控制服務(wù)器。
3.根據(jù)權(quán)利要求2所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在i < MF成立的情況下,還包括以下步驟 步驟S206-1 :主動ISCSI硬盤A(N,s)等待狀態(tài)信息rsp(*,s, a);其中,狀態(tài)信息rsp(*,s,a)是被動ISCSI硬盤B(M, *)發(fā)送給主動ISCSI硬盤A (N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), , rsp (Μ-1, s, a); 步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp (*,s,a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,s,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入; 在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時運行步驟S206-3 ; 步驟S206-3 :主動ISCSI硬盤A (N,s)判斷向被動ISCSI硬盤B (M,x)發(fā)送信息msg(s,X,d(a))是否達(dá)到E次X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù); 沒有達(dá)到E次的情況下,則運行步驟S206-4 ; 步驟S206-4 :主動ISCSI硬盤A (N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ; 達(dá)到E次的情況下,運行步驟S206-5 ; 步驟S206-5 :主動ISCSI硬盤A (N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,x)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S205。
4.根據(jù)權(quán)利要求2所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在步驟S204后還包括步驟S204-1 步驟S204-1 :判斷編號為i的被動ISCSI硬盤是否發(fā)生故障; 在發(fā)生故障時,i = i+1 ;運行步驟S204-1 ; 在沒有發(fā)生故障時,運行步驟S205及步驟S206 ;在步驟S206中,在i < M成立的情況下,運行步驟S206';在步驟S206'之后,運行步驟S204-1 ; 其中,在第一次向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s,i,d(a)之前,被動ISCSI硬盤B(M,i)是沒有發(fā)生故障的。
5.根據(jù)權(quán)利要求4所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在i < MF成立的情況下,還包括以下步驟 步驟S206-1 :主動ISCSI硬盤A (N,s)等待狀態(tài)信息rsp (*,s, a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B(M, *)發(fā)送給主動ISCSI硬盤A (N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), . . . , rsp (M_l, s, a); 步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp (*,s,a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,s,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入; 在每個被動I SCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成 功時運行步驟S206-3 ; 步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B (M,x)發(fā)送信息msg(s,X,d(a))是否達(dá)到E次X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù); 沒有達(dá)到E次的情況下,則運行步驟S206-4 ; 步驟S206-4 :主動ISCSI硬盤A (N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ; 達(dá)到E次的情況下,運行步驟S206-5 ; 步驟S206-5 :主動ISCSI硬盤A (N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,x)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206/ i = i+1 ;然后運行步驟S204-1。
6.根據(jù)權(quán)利要求2所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在步驟SlOO中,IPSAN控制服務(wù)器將復(fù)制命令cmd (N,s)發(fā)送至以太網(wǎng)交換機,以太網(wǎng)交換機根據(jù)每個主動ISCSI硬盤的IP地址將復(fù)制命令cmd (N,s)發(fā)送至主動ISCSI硬盤;全盤復(fù)制命令cmd (N)還包括主動ISCSI硬盤的IP地址和該主動ISCSI硬盤在主動ISCSI硬盤陣列A(N)中的編號s ; 步驟S205中,主動ISCSI硬盤A(N,s)通過以太網(wǎng)交換機向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s, i, d(a));信息msg(s,i, d(a))還包括被動ISCSI硬盤陣列B(M)中每個ISCSI硬盤的IP地址; 其中,全盤復(fù)制命令cmd (N)還包括被動ISCSI硬盤陣列B(M)中每個ISCSI硬盤的IP地址。
7.根據(jù)權(quán)利要求I所述的基于ISCSI的全盤復(fù)制方法,其特征在于 在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,需要在主動ISCSI硬盤A(N,#)新寫入數(shù)據(jù)時,還包括步驟S300;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A(N,#)的位置是IPSAN控制服務(wù)器為存儲需要新寫入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表不;#為通配符,表不任何有效值,有效值的集合為{0,1,2,···,N-1}; 步驟S300包括以下步驟 步驟S301 =IPSAN控制服務(wù)器控制將需要新寫入的數(shù)據(jù)F和數(shù)據(jù)F在主動ISCSI硬盤A (N,#)的位置Fa寫入應(yīng)急ISCSI硬盤,應(yīng)急ISCSI硬盤用D表示; 其中,應(yīng)急ISCSI硬盤是在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,存儲新寫入的數(shù)據(jù)F和位置Fa的ISCSI硬盤; 步驟S302 :全盤復(fù)制結(jié)束后,IPSAN控制服務(wù)器對N賦值,N = N+M ;步驟S303 =IPSAN控制服務(wù)器命令應(yīng)急ISCSI硬盤D根據(jù)位置Fa,將新寫入的數(shù)據(jù)F復(fù)制到主動ISCSI硬盤陣列A(N)中的每一個ISCSI硬盤的對應(yīng)的位置Fa。
8.一種基于ISCSI的存儲系統(tǒng),其特征在于 包括存儲單元和備份單元; 所述存儲單元包括IPSAN控制服務(wù)器,第一以太網(wǎng)交換機和主動ISCSI硬盤陣列A(N);其中,主動ISCSI硬盤是接收IPSAN控制服務(wù)器復(fù)制命令的ISCSI硬盤;主動ISCSI硬盤陣列是多個主動ISCSI硬盤的集合,主動ISCSI硬盤陣列A(N)表示主動ISCSI硬盤陣列中包括N個主動ISCSI硬盤;N個主動ISCSI硬盤互為鏡像,N是自然數(shù);主動ISCSI硬盤A(N,s)表示主動ISCSI硬盤陣列A(N)中編號為s的主動ISCSI硬盤,s e {O,I,2,...,N-1};復(fù)制命令cmd(N,s)表示IPSAN控制服務(wù)器發(fā)給主動ISCSI硬盤A (N,s)的復(fù)制命令;全盤復(fù)制命令cmd(N)表示IPSAN控制服務(wù)器發(fā)給每個主動ISCSI硬盤復(fù)制命令的集合; 所述備份單元包括第二以太網(wǎng)交換機和被動ISCSI硬盤陣列B(M);其中,主動ISCSI硬盤和被動ISCSI硬盤的容量相同,用C表示;被動ISCSI硬盤是用于備份的在全盤復(fù)制開始前空白的ISCSI硬盤;被動ISCSI硬盤陣列是多個被動ISCSI硬盤的集合,被動ISCSI硬盤陣列B(M)表示被動ISCSI硬盤陣列中包括M個被動ISCSI硬盤,M是自然數(shù);被動ISCSI硬盤B(M,i)表示被動ISCSI硬盤陣列B(M)中編號為i的被動硬盤,i e {O,1,2,...,M_1};所述IPSAN控制服務(wù)器,N個主動ISCSI硬盤和M個被動ISCSI硬盤分別與第一以太網(wǎng)交換機和第二以太網(wǎng)交換機連接; 所述IPSAN控制服務(wù)器,通過第一以太網(wǎng)交換機和/或第二以太網(wǎng)交換機,實現(xiàn)與主動ISCSI硬盤的非數(shù)據(jù)通信;主動ISCSI硬盤根據(jù)非數(shù)據(jù)通信將主動ISCSI硬盤全盤復(fù)制到M個被動ISCSI硬盤。
9.根據(jù)權(quán)利要求8所述的基于ISCSI的存儲系統(tǒng),其特征在于 全盤復(fù)制命令cmd(N)包括主動ISCSI硬盤的IP地址和該主動ISCSI硬盤在主動ISCSI硬盤陣列A(N)中的編號s ;IPSAN控制服務(wù)器用于將復(fù)制命令通過第一以太網(wǎng)交換機或第二以太網(wǎng)交換機發(fā)送至主動ISCSI硬盤;以太網(wǎng)交換機根據(jù)每個主動ISCSI硬盤的IP地址確定主動ISCSI硬盤。
10.根據(jù)權(quán)利要求9所述的基于ISCSI的存儲系統(tǒng),其特征在于 全盤復(fù)制命令cmd(N)還包括每次復(fù)制操作的長度L和ISCSI硬盤的容量C ;其中,每次復(fù)制操作的長度L表示每次復(fù)制操作復(fù)制L個LBA ;ISCSI硬盤的容量C表示ISCSI磁盤的容量是C個LBA,ISCSI硬盤內(nèi)C個LBA編號為0,1,2,· · ·,C-I ; 所述主動ISCSI硬盤A (N,s)用于根據(jù)自身編號s和L,確定復(fù)制的起始地址列表; 所述主動ISCSI硬盤A(N,s)還用于根據(jù)起始地址列表中的每一個地址準(zhǔn)備起始地址及隨后一定區(qū)域的數(shù)據(jù);并將數(shù)據(jù)發(fā)送至M個被動ISCSI硬盤。
11.根據(jù)權(quán)利要求10所述的基于ISCSI的存儲系統(tǒng),其特征在于 所述主動ISCSI硬盤A (N,s)確定復(fù)制的最初的起始地址a,a = sL ;表示對主動ISCSI硬盤A (N,s)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始; 在a < C成立的情況下,a = a+NL。
12.根據(jù)權(quán)利要求10所述的基于ISCSI的存儲系統(tǒng),其特征在于 所述主動ISCSI硬盤A(N,s)根據(jù)被動ISCSI硬盤的編號從小到大的順序依次將數(shù)據(jù)發(fā)送至M個被動ISCSI硬盤。
13.根據(jù)權(quán)利要求10所述的基于ISCSI的存儲系統(tǒng),其特征在于 主動ISCSI硬盤A (N,S)按照以下步驟運行 步驟S201 :主動ISCSI硬盤A (N,s)接收到復(fù)制命令cmd (N,s); 步驟S202 :主動ISCSI硬盤A(N,s)確定復(fù)制的最初的起始地址a,a = sL ;表示對主動ISCSI硬盤A (N,s)的復(fù)制從主動ISCSI硬盤內(nèi)的編號為a的LBA開始; 步驟S203 :主動ISCSI硬盤A (N,s)準(zhǔn)備數(shù)據(jù)d(a);數(shù)據(jù)d(a)表示從起始地址a開始的L個LBA的數(shù)據(jù); 步驟S204 :對i初始化,i = O ;其中,i是被動ISCSI硬盤在被動ISCSI硬盤陣列B(M)中編號,i = O表示主動ISCSI硬盤A (N,s)控制寫入從編號為O的被動ISCSI硬盤開始;步驟S205 :主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B(M,i)發(fā)送信息msg(s,i,d(a)); 其中,信息msg(s,i,d(a))表示主動ISCSI硬盤A(N,s)向被動ISCSI硬盤B (M,i)發(fā)送的信息,包括數(shù)據(jù)d (a); 步驟S206 :判斷i < M是否成立, 在i < M成立的情況下,運行步驟206'; 步驟S206' i = i+1 ;然后運行步驟S205 ; 在i < M不成立的情況下,運行步驟S207 ; 步驟S207 :判斷a是否小于C, 在a < C成立的情況下,確定下一個起始地址a, a = a+NL ;運行步驟S203 ; 在a < C不成立的情況下,運行步驟S208 ; 步驟S208 :主動ISCSI硬盤A(N,s)結(jié)束復(fù)制,并將復(fù)制情況告知IPSAN控制服務(wù)器。
14.根據(jù)權(quán)利要求13所述的基于ISCSI的存儲系統(tǒng),其特征在于 主動ISCSI硬盤A(N,s)還包括以下步驟運行 在i < MF成立的情況下,還包括以下步驟 步驟S206-1 :主動ISCSI硬盤A (N,s)等待狀態(tài)信息rsp (*,s, a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B (Μ, *)發(fā)送給主動ISCSI硬盤A(N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), . . . , rsp (M-1, s, a); 步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp (*,s,a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,s,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入; 在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時運行步驟S206-3 ; 步驟S206-3 :主動ISCSI硬盤A(N,s)判斷向被動ISCSI硬盤B (M,x)發(fā)送信息msg(s,X,d(a))是否達(dá)到E次X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù); 沒有達(dá)到E次的情況下,則運行步驟S206-4 ;步驟S206-4 :主動ISCSI硬盤A (N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ; 達(dá)到E次的情況下,運行步驟S206-5 ; 步驟S206-5 :主動ISCSI硬盤A (N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,x)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟S205。
15.根據(jù)權(quán)利要求13所述的基于ISCSI的存儲系統(tǒng),其特征在于 主動ISCSI硬盤A (N,s)還包括以下步驟運行 在步驟S204后還包括步驟S204-1 步驟S204-1 :判斷編號為i的被動ISCSI硬盤是否發(fā)生故障; 在發(fā)生故障時,i = i+1 ;運行步驟S204-1 ; 在沒有發(fā)生故障時,運行步驟S205及步驟S206 ;在步驟S206中,在i < M成立的情況下,運行步驟S206';在步驟S206'之后,運行步驟S204-1。
16.根據(jù)權(quán)利要求15所述的基于ISCSI的存儲系統(tǒng),其特征在于 在i < MF成立的情況下,主動ISCSI硬盤A(N,S)還包括以下步驟 步驟S206-1 :主動ISCSI硬盤A(N,s)等待狀態(tài)信息rsp (*,s, a);其中,狀態(tài)信息rsp (*, s, a)是被動ISCSI硬盤B(M, *)發(fā)送給主動ISCSI硬盤A (N, s)針對信息msg(s,*,d(a))的反饋報告,包括起始地址a和是否成功寫入的信息;其中,*為通配符,表示任何有效值,有效值的集合為{0,1,2,..., M-1};狀態(tài)信息rsp O, s, a)包括rsp (O, s, a),rsp (I,s, a), rsp (2, s, a), , rsp (Μ-1, s, a); 步驟S206-2 :主動ISCSI硬盤A(N,s)根據(jù)狀態(tài)信息rsp (*,s,a)判斷是否在每個被動ISCSI硬盤寫入成功包括是否收到狀態(tài)信息rsp(*,s,a)和狀態(tài)信息rsp(*,s, a)是否表明被動ISCSI硬盤已經(jīng)成功寫入; 在每個被動ISCSI硬盤寫入成功時,運行步驟S207 在不是每個被動ISCSI硬盤都寫入成功時運行步驟S206-3 ; 步驟S206-3 :主動ISCSI硬盤A (N,s)判斷向被動ISCSI硬盤B (M,x)發(fā)送信息msg(s,X,d(a))是否達(dá)到E次X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;E是設(shè)定的自然數(shù); 沒有達(dá)到E次的情況下,則運行步驟S206-4 ; 步驟S206-4 :主動ISCSI硬盤A (N,s)向被動ISCSI硬盤B(M,x)發(fā)送信息msg(s,x,d(a)),x表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;運行步驟S206-1 ; 達(dá)到E次的情況下,運行步驟S206-5 ; 步驟S206-5 :主動ISCSI硬盤A (N,s)告知IPSAN控制服務(wù)器被動ISCSI硬盤B(M,x)故障,X表示被動ISCSI硬盤陣列B(M)中沒有成功寫入的被動ISCSI硬盤編號;并運行步驟S206' i = i+1 ;然后運行步驟204-1。
17.根據(jù)權(quán)利要求8所述的基于ISCSI的存儲系統(tǒng),其特征在于 還包括應(yīng)急ISCSI硬盤;所述應(yīng)急ISCSI硬盤與第一以太網(wǎng)交換機和第二以太網(wǎng)交換機連接; 在IPSAN 控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,需要在主動ISCSI硬盤A(N,#)新寫入數(shù)據(jù)時,還包括步驟S300;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A (N,#)的位置是IPSAN控制服務(wù)器為存儲需要新寫入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表示;其中,需要新寫入的數(shù)據(jù)用F表示;數(shù)據(jù)F在主動ISCSI硬盤A (N,#)的位置是IPSAN控制服務(wù)器為存儲需要新寫入的數(shù)據(jù)F分配的一個或多個LBA編號所在區(qū)域,位置用Fa表不;#為通配符,表不任何有效值,有效值的集合為{0,1,2,···,N-1}; 步驟S300包括以下步驟 步驟S301 =IPSAN控制服務(wù)器控制將需要新寫入的數(shù)據(jù)F和數(shù)據(jù)F在主動ISCSI硬盤A (N,#)的位置Fa寫入應(yīng)急ISCSI硬盤,應(yīng)急ISCSI硬盤用D表示; 其中,應(yīng)急ISCSI硬盤是在IPSAN控制服務(wù)器發(fā)送全盤復(fù)制命令cmd (N)后,全盤復(fù)制結(jié)束前這段時間,存儲新寫入的數(shù)據(jù)F和位置Fa的ISCSI硬盤; 步驟S302 :全盤復(fù)制結(jié)束后,IPSAN控制服務(wù)器對N賦值,N = N+M ; 步驟S303 =IPSAN控制服務(wù)器命令應(yīng)急ISCSI硬盤D根據(jù)位置Fa,將新寫入的數(shù)據(jù)F復(fù)制到主動ISCSI硬盤陣列A(N)中的每一個ISCSI硬盤的對應(yīng)的位置Fa。
18.根據(jù)權(quán)利要求8所述的基于ISCSI的存儲系統(tǒng),其特征在于 所述ISCSI硬盤包括控制芯片和硬盤,控制芯片用來實現(xiàn)對復(fù)制操作的控制,硬盤用來存儲數(shù)據(jù)。
全文摘要
本發(fā)明提供一種基于ISCSI的全盤復(fù)制方法及存儲系統(tǒng),全盤復(fù)制方法包括以下步驟步驟S100IPSAN控制服務(wù)器生成全盤復(fù)制命令cmd(N),并將復(fù)制命令cmd(N,s)發(fā)送至主動ISCSI硬盤陣列A(N)中每個主動ISCSI硬盤A(N,s);步驟S200每個主動ISCSI硬盤A(N,s)根據(jù)復(fù)制命令cmd(N,s),將其設(shè)定區(qū)域復(fù)制到被動ISCSI硬盤陣列B(M)中的M個被動ISCSI硬盤;每個主動ISCSI硬盤的設(shè)定區(qū)域各不相同,N個主動ISCSI硬盤A(N,s)的設(shè)定區(qū)域的集合為主動ISCSI硬盤A(N,s)的全盤;本發(fā)明每一個ISCSI硬盤通過以太網(wǎng)交換機互聯(lián),且所采用的ISCSI硬盤具有數(shù)據(jù)轉(zhuǎn)發(fā)邏輯功能,這使得ISCSI硬盤之間可以通過以太網(wǎng)交換機進(jìn)行端口對端口無阻塞通訊,在IPSAN控制服務(wù)器的指令下實現(xiàn)數(shù)據(jù)的全盤復(fù)制,避免了數(shù)據(jù)通過IPSAN控制服務(wù)器存儲和轉(zhuǎn)發(fā)造成的復(fù)制延遲和資源占用。
文檔編號G06F17/30GK102902683SQ20111021138
公開日2013年1月30日 申請日期2011年7月27日 優(yōu)先權(quán)日2011年7月27日
發(fā)明者陳杰 申請人:北京飛杰信息技術(shù)有限公司, 北京華勝天成科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1