專利名稱:Raid組磁盤數(shù)據(jù)預(yù)遷移方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,具體涉及一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法。
技術(shù)背景
RAID是英文 Redundant Array of Independent Disks 的縮寫,翻譯成中文意思是 “獨立磁盤冗余陣列”,有時也簡稱為磁盤陣列(Disk Array)。
簡單地說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數(shù)據(jù)備份的技術(shù)。 組成磁盤陣列的不同方式稱為RAID級別(RAID Levels)。數(shù)據(jù)備份的功能是在用戶數(shù)據(jù)一旦發(fā)生損壞后,利用備份信息可以使損壞數(shù)據(jù)得以恢復(fù),從而保障了用戶數(shù)據(jù)的安全性。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進(jìn)行分區(qū),格式化等等??傊?,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數(shù)據(jù)備份。
RAID技術(shù)經(jīng)過不斷的發(fā)展,現(xiàn)在已擁有了從RAID 0到RAID 6的七種基本的RAID 級別。另外,還有一些基本RAID級別的組合形式,如RAID 10 (RAID 0與RAID 1的組合), RAID 50 (RAID 0與RAID 5的組合)等。不同RAID級別代表著不同的存儲性能、數(shù)據(jù)安全性和存儲成本。
RAID 0 =RAID 0并不是真正的RAID結(jié)構(gòu),沒有數(shù)據(jù)冗余。RAID 0連續(xù)地分割數(shù)據(jù)并且并行地讀/寫于多個磁盤上,因此具有很高的數(shù)據(jù)傳輸率。但RAID 0在提高性能的同時,并沒有提供數(shù)據(jù)可靠性。如果一個磁盤失效,將影響整個數(shù)據(jù)。因此RAID 0不可應(yīng)用于需要數(shù)據(jù)高可用性的關(guān)鍵應(yīng)用。
RAID 1 =RAID 1通過數(shù)據(jù)鏡像實現(xiàn)數(shù)據(jù)冗余,在兩對分離的磁盤上產(chǎn)生互為備份的數(shù)據(jù)。RAID 1可以提高讀的性能,當(dāng)原始數(shù)據(jù)繁忙時,可直接從鏡像拷貝中讀取數(shù)據(jù)。 RAID 1是磁盤陣列中費用最高的,但提供了最高的數(shù)據(jù)可用率。當(dāng)一個磁盤失效,系統(tǒng)可以自動地交換到鏡像磁盤上,而不需要重組失效的數(shù)據(jù)。
RAID 2 從概念上講,RAID 2同RAID 3類似,兩者都是將數(shù)據(jù)條塊化分布于不同的硬盤上,條塊單位為位或字節(jié)。然而,RAID 2使用稱為“加重平均糾錯碼”的編碼技術(shù)來提供錯誤檢查及恢復(fù)。這種編碼技術(shù)需要多個磁盤存放檢查及恢復(fù)信息,使得RAID 2技術(shù)實施更復(fù)雜。因此,RAID 2在商業(yè)環(huán)境中很少使用。
RAID 3 不同于RAID 2,RAID 3使用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶校驗盤及其他數(shù)據(jù)盤可以重新產(chǎn)生數(shù)據(jù)。如果奇偶盤失效,則不影響數(shù)據(jù)使用。 RAID 3對于大量的連續(xù)數(shù)據(jù)可提供很好的傳輸率,但對于隨機(jī)數(shù)據(jù),奇偶盤會成為寫操作的瓶頸。
RAID 4:同RAID 2,RAID 3—樣,RAID 4,RAID 5也同樣將數(shù)據(jù)條塊化并分布于不同的磁盤上,但條塊單位為塊或記錄。RAID 4使用一塊磁盤作為奇偶校驗盤,每次寫操作都需要訪問奇偶校驗盤,成為寫操作的瓶頸。RAID 4在商業(yè)應(yīng)用中很少使用。
RAID 5 =RAID 5沒有單獨指定的奇偶校驗盤,而是交叉地存取數(shù)據(jù)及奇偶校驗信息于所有磁盤上。在RAID 5上,讀/寫指針可同時對陣列設(shè)備進(jìn)行操作,提供了更高的數(shù)據(jù)流量。RAID 5更適合于小數(shù)據(jù)塊、隨機(jī)讀寫的數(shù)據(jù)。RAID 3與RAID 5相比,重要的區(qū)別在于RAID 3每進(jìn)行一次數(shù)據(jù)傳輸,需涉及到所有的陣列盤。而對于RAID 5來說,大部分?jǐn)?shù)據(jù)傳輸只對一塊磁盤操作,可進(jìn)行并行操作。在RAID 5中有“寫損失”,即每一次寫操作將產(chǎn)生四個實際的讀/寫操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫新的數(shù)據(jù)及奇偶信息。RAID 6 =RAID 6與RAID 5相比,增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統(tǒng)使用不同的算法,數(shù)據(jù)的可靠性非常高。即使兩塊磁盤同時失效,也不會影響數(shù)據(jù)的使用。但需要分配給奇偶校驗信息更大的磁盤空間,相對于RAID 5有更大的“寫損失”。RAID 6的寫性能非常差。通用的RAID磁盤出錯處理機(jī)制如下在讀寫RAID組中磁盤過程中發(fā)生I/O錯誤, 系統(tǒng)會將出錯的磁盤從RAID組刪除,然后再將熱備盤加入到陣列中,接著系統(tǒng)啟動數(shù)據(jù)恢復(fù)操作,利用其它磁盤上的數(shù)據(jù)恢復(fù)新加入磁盤的數(shù)據(jù)。要使用一塊新的磁盤替換磁盤陣列中原有的某一塊磁盤,有兩種方法。一個是不停止1/0,方法和上面描述壞盤替換的一樣。另一種方法是先停止1/0,然后將想要替換的源盤數(shù)據(jù)整盤拷貝到新盤,之后再使用新盤替代源盤,接著再恢復(fù)I/O操作。上述出錯處理機(jī)制有兩個缺陷。只有在發(fā)生I/O錯誤時才使用新磁盤替代出錯的磁盤。實際使用中發(fā)生I/O錯誤往往意味著磁盤已經(jīng)出現(xiàn)壞塊,數(shù)據(jù)已經(jīng)出錯,此磁盤已經(jīng)不能正常使用了。對于RAID 0,磁盤故障就意味著數(shù)據(jù)的丟失。這種處理機(jī)制缺乏預(yù)見性, 被動地等待磁盤出錯的時候才對發(fā)生的錯誤進(jìn)行補救。同時,對于數(shù)據(jù)量龐大的磁盤陣列來說,利用陣列中的其他磁盤數(shù)據(jù)恢復(fù)數(shù)據(jù)需要進(jìn)行大量的計算,這種恢復(fù)操作耗費大量的數(shù)據(jù)總線資源及CPU資源,也意味著恢復(fù)數(shù)據(jù)需要的時間較長,并降低RAID組本身的I/ 0能力,加長I/O操作延時和減低I/O吞吐速率。另外一種替換磁盤的方法要先停止RAID組的I/O操作,這種替換方法不能做到對使用者透明。存儲系統(tǒng)在使用中停止I/O對于用戶而言是一種不可接受的行為。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明所要解決的技術(shù)問題其一是如何避免在磁盤發(fā)生故障時所造成的RAID 組故障;其二是如何在不停止I/O操作的情況下替換RAID組中的磁盤;其三是降低替換磁盤過程中導(dǎo)致的性能損失。(二)技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供了一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法,包括以下步驟Si、監(jiān)測RAID組的磁盤錯誤信息,所述磁盤錯誤信息包括軟件檢測信息和SMART
告警信息;S2、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,則將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,所述具有所述磁盤錯誤信息的源盤的數(shù)據(jù)包括在源盤上已有的數(shù)據(jù)和待寫入源盤的數(shù)據(jù),為待寫入源盤的數(shù)據(jù)。
S3、使用目標(biāo)盤替換源盤。優(yōu)選地,步驟S2具體包括S20、創(chuàng)建兩個數(shù)據(jù)緩存的步驟創(chuàng)建用于暫存待寫入目標(biāo)盤的數(shù)據(jù)的遷移緩存;和創(chuàng)建鏡像緩存,所述鏡像緩存用于暫存鏡像寫數(shù)據(jù);S21、對待寫入源盤的數(shù)據(jù)執(zhí)行鏡像寫步驟,和S22、對待寫入目標(biāo)盤的數(shù)據(jù)執(zhí)行數(shù)據(jù)遷移步驟;步驟S21具體包括S211、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,在待寫入源盤的數(shù)據(jù)寫入源盤之前,截獲源盤的寫操作;S212、如果寫的位置還未開始遷移,不將待寫入源盤的數(shù)據(jù)遷移到目標(biāo)盤;如果寫的位置已完成遷移,克隆所述寫操作,并將所述待寫入源盤的數(shù)據(jù)寫入目標(biāo)盤相對應(yīng)的位置;如果寫的位置正在遷移,先把鏡像寫數(shù)據(jù)寫入到鏡像緩存,等該寫的位置的數(shù)據(jù)遷移完成,再把寫的數(shù)據(jù)寫入目標(biāo)盤;步驟S22具體包括S221、從源盤中讀取數(shù)據(jù)暫存到遷移緩存;S222、將遷移緩存中的數(shù)據(jù)寫入到目標(biāo)盤;S223、檢查鏡像緩存中是否有數(shù)據(jù)需要寫入到目標(biāo)盤,如果有數(shù)據(jù)需要寫入到目標(biāo)盤,把鏡像緩存中的對應(yīng)的數(shù)據(jù)寫入目標(biāo)盤;S224、檢查遷移是否完成,如果未完成,那么重復(fù)步驟S221 S223 ;如果完成,退出遷移流程。優(yōu)選地,所述軟件檢測信息包括壞塊重定向數(shù),所述SMART告警信息包括SMART故障數(shù),磁盤讀錯誤數(shù)和磁盤不可修復(fù)扇區(qū)數(shù)。優(yōu)選地,所述使用目標(biāo)盤替換源盤的步驟具體為將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,然后使用所述目標(biāo)盤替換所述源盤,再將所述源盤相關(guān)的I/O操作轉(zhuǎn)移到所述目標(biāo)盤上,最后將所述源盤從所述RAID組中移除。(三)有益效果本發(fā)明通過磁盤預(yù)警技術(shù)預(yù)測磁盤將可能發(fā)生故障,并在故障發(fā)生前就預(yù)先把數(shù)據(jù)遷移到備用盤,從而避免故障的發(fā)生。比傳統(tǒng)磁盤失效后再恢復(fù)數(shù)據(jù)的方法在RAID組發(fā)生故障時更加優(yōu)選地降低數(shù)據(jù)丟失的可能性。具體來說,磁盤替換過程對用戶透明,不影響用戶對磁盤陣列的正常讀寫,而且能最大限度地減少在替換過程中引起的系統(tǒng)開銷。在線復(fù)制和替換磁盤的方法在替換磁盤的過程中不需要停止RAID組的I/O操作。使用鏡像寫方式實現(xiàn)在線遷移的方式實現(xiàn)RAID組磁盤的無縫替換。在線遷移的鏡像寫無鎖設(shè)計,避免加鎖的系統(tǒng)開銷和加鎖機(jī)制對I/O操作的影響。另外,遷移操作僅僅是將錯誤磁盤的數(shù)據(jù)遷移到目標(biāo)盤,避免了數(shù)據(jù)恢復(fù)操作需要的大量系統(tǒng)開銷。
圖1是本發(fā)明實施例的方法流程圖。
具體實施例方式下面對于本發(fā)明所提出的一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法,結(jié)合附圖和實施例詳細(xì)說明。
如圖1所示,本發(fā)明實施例提供了一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法,包括以下步驟Si、監(jiān)測RAID組的磁盤錯誤信息,所述磁盤錯誤信息包括軟件檢測信息和SMART
告警信息;S2、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,則將具有所述磁盤錯誤信息的源盤(即出錯磁盤)的數(shù)據(jù)遷移到目標(biāo)盤(即備用磁盤),所述具有所述磁盤錯誤信息的源盤的數(shù)據(jù)包括在源盤上已有的數(shù)據(jù)和待寫入源盤的數(shù)據(jù),在源盤上已有的數(shù)據(jù)和待寫入源盤的數(shù)據(jù)這兩種數(shù)據(jù)為待寫入源盤的數(shù)據(jù)。S3、使用目標(biāo)盤替換源盤,將源盤相關(guān)的I/O轉(zhuǎn)移到目標(biāo)盤,將RAID組從源盤刪除。步驟S2具體包括S20、創(chuàng)建兩個數(shù)據(jù)緩存的步驟創(chuàng)建用于暫存待寫入目標(biāo)盤的數(shù)據(jù)的遷移緩存;和創(chuàng)建鏡像緩存,所述鏡像緩存用于暫存鏡像寫數(shù)據(jù);S21、對待寫入源盤的數(shù)據(jù)執(zhí)行鏡像寫步驟,和S22、對待寫入目標(biāo)盤的數(shù)據(jù)執(zhí)行數(shù)據(jù)遷移步驟,即先把數(shù)據(jù)從源盤中讀出放到遷移緩存,然后把遷移緩存中的數(shù)據(jù)寫入到目標(biāo)盤;步驟S21具體包括S211、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,在待寫入源盤的數(shù)據(jù)寫入源盤之前,截獲源盤的寫操作;S212、如果寫的位置還未開始遷移,不將待寫入源盤的數(shù)據(jù)遷移到目標(biāo)盤;如果寫的位置已完成遷移,克隆所述寫操作,并將所述待寫入源盤的數(shù)據(jù)寫入目標(biāo)盤相對應(yīng)的位置;如果寫的位置正在遷移,先把鏡像寫數(shù)據(jù)寫入到鏡像緩存,等該寫的位置的數(shù)據(jù)遷移完成,再把寫的數(shù)據(jù)寫入目標(biāo)盤;步驟S22具體包括S221、從源盤中讀取數(shù)據(jù)暫存到遷移緩存;S222、將遷移緩存中的數(shù)據(jù)寫入到目標(biāo)盤;S223、檢查鏡像緩存中是否有數(shù)據(jù)需要寫入到目標(biāo)盤,如果有數(shù)據(jù)需要寫入到目標(biāo)盤,把鏡像緩存中的對應(yīng)的數(shù)據(jù)寫入目標(biāo)盤;S224、檢查遷移是否完成,如果未完成,那么重復(fù)步驟S221 S223 ;如果完成,退出遷移流程。所述軟件檢測信息包括壞塊重定向數(shù),所述SMART (Self-Monitoring Analysis and Reporting Technology,自我監(jiān)測、分析及報告技術(shù))告警信息包括SMART故障數(shù),磁盤讀錯誤數(shù)和磁盤不可修復(fù)扇區(qū)數(shù)。步驟S3中,將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,然后使用所述目標(biāo)盤替換所述源盤,再將所述源盤相關(guān)的1/0操作轉(zhuǎn)移到所述目標(biāo)盤上,最后將所述源盤從所述RAID組中移除。如果鏡像寫和數(shù)據(jù)遷移兩個任務(wù)同時對磁盤的同一塊空間進(jìn)行操作,這時候就發(fā)生沖突?,F(xiàn)有技術(shù)中常用的做法是對可能發(fā)生的沖突進(jìn)行加鎖操作。在遷移任務(wù)中,對正在遷移的數(shù)據(jù)加鎖,在完成遷移之后,對這塊空間解鎖。鏡像寫任務(wù)中也一樣,在寫開始時加鎖操作的空間,寫完成后解鎖操作的空間。先持有鎖的任務(wù)擁有操作這塊空間的權(quán)利,未持有鎖的任務(wù)需要等待,等到鎖被解開才能繼續(xù)操作。這種加鎖的方法在發(fā)生沖突時,需要等待,等到鎖被持有者解開之后才可繼續(xù),這樣就加大發(fā)生沖突時的I/O延遲,降低了 I/O 性能。而本發(fā)明在處理沖突時,先將數(shù)據(jù)暫存到鏡像緩存,等到該位置完成遷移,再把緩存中的數(shù)據(jù)寫入目標(biāo)盤(參見步驟S2U)。這種無鎖設(shè)計不存在等待,也不存在加鎖/解鎖帶來的系統(tǒng)開銷。由以上實施例可以看出,本發(fā)明通過磁盤預(yù)警技術(shù)預(yù)測磁盤將可能發(fā)生故障,并在故障發(fā)生前就預(yù)先把數(shù)據(jù)遷移到備用盤,比傳統(tǒng)磁盤失效后再恢復(fù)數(shù)據(jù)的方法在RAID 組發(fā)生故障時更加優(yōu)選地降低數(shù)據(jù)丟失的可能性。具體來說,磁盤替換過程對用戶透明,不影響用戶對磁盤陣列的正常讀寫,而且能最大限度地減少在替換過程中引起的系統(tǒng)開銷。 在線復(fù)制和替換磁盤的方法在替換磁盤的過程中不需要停止RAID組的I/O操作。使用鏡像寫方式實現(xiàn)在線遷移的方式實現(xiàn)RAID組磁盤的無縫替換。在線遷移的鏡像寫無鎖設(shè)計, 避免加鎖的系統(tǒng)開銷和加鎖機(jī)制對I/O操作的影響。另外,遷移操作僅僅是將錯誤磁盤的數(shù)據(jù)遷移到目標(biāo)盤,避免了數(shù)據(jù)恢復(fù)操作需要的大量系統(tǒng)開銷。以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法,其特征在于,包括以下步驟51、監(jiān)測RAID組的磁盤錯誤信息,所述磁盤錯誤信息包括軟件檢測信息和SMART告警 fn息;52、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,則將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,所述具有所述磁盤錯誤信息的源盤的數(shù)據(jù)包括在源盤上已有的數(shù)據(jù)和待寫入源盤的數(shù)據(jù),為待寫入目標(biāo)盤的數(shù)據(jù);53、使用目標(biāo)盤替換源盤。
2.如權(quán)利要求1所述的方法,其特征在于,步驟S2具體包括S20、創(chuàng)建兩個數(shù)據(jù)緩存的步驟創(chuàng)建用于暫存待寫入目標(biāo)盤的數(shù)據(jù)的遷移緩存;和創(chuàng)建鏡像緩存,所述鏡像緩存用于暫存鏡像寫數(shù)據(jù);S21、對待寫入源盤的數(shù)據(jù)執(zhí)行鏡像寫步驟;和S22、對待寫入目標(biāo)盤的數(shù)據(jù)執(zhí)行數(shù)據(jù)遷移步驟。
3.如權(quán)利要求2所述的方法,其特征在于,步驟S21具體包括5211、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,在待寫入源盤的數(shù)據(jù)寫入源盤之前,截獲源盤的寫操作;5212、如果寫的位置還未開始遷移,不將待寫入源盤的數(shù)據(jù)遷移到目標(biāo)盤;如果寫的位置已完成遷移,克隆所述寫操作,并將所述待寫入源盤的數(shù)據(jù)寫入目標(biāo)盤相對應(yīng)的位置;如果寫的位置正在遷移,先把鏡像寫數(shù)據(jù)寫入到鏡像緩存,等該寫的位置的數(shù)據(jù)遷移完成,再把寫的數(shù)據(jù)寫入目標(biāo)盤。
4.如權(quán)利要求2所述的方法,其特征在于,步驟S22具體包括5221、從源盤中讀取數(shù)據(jù)暫存到遷移緩存;5222、將遷移緩存中的數(shù)據(jù)寫入到目標(biāo)盤;5223、檢查鏡像緩存中是否有數(shù)據(jù)需要寫入到目標(biāo)盤,如果有數(shù)據(jù)需要寫入到目標(biāo)盤, 把鏡像緩存中的對應(yīng)的數(shù)據(jù)寫入目標(biāo)盤;5224、檢查遷移是否完成,如果未完成,那么重復(fù)步驟S221 S223;如果完成,退出遷移流程。
5.如權(quán)利要求1所述的方法,其特征在于,所述軟件檢測信息包括壞塊重定向數(shù),所述 SMART告警信息包括SMART故障數(shù),磁盤讀錯誤數(shù)和磁盤不可修復(fù)扇區(qū)數(shù)。
6.如權(quán)利要求1 5中任一項所述的方法,其特征在于,所述使用目標(biāo)盤替換源盤的步驟具體為將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,然后使用所述目標(biāo)盤替換所述源盤,再將所述源盤相關(guān)的I/O操作轉(zhuǎn)移到所述目標(biāo)盤上,最后將所述源盤從所述 RAID組中移除。
全文摘要
本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,公開了一種RAID組磁盤數(shù)據(jù)預(yù)遷移方法,包括以下步驟S1、監(jiān)測RAID組的磁盤錯誤信息,所述磁盤錯誤信息包括軟件檢測信息和SMART告警信息;S2、若監(jiān)測到的所述磁盤錯誤信息的數(shù)量達(dá)到預(yù)設(shè)的閾值,則將具有所述磁盤錯誤信息的源盤的數(shù)據(jù)遷移到目標(biāo)盤,所述具有所述磁盤錯誤信息的源盤的數(shù)據(jù),包括在源盤上已有的數(shù)據(jù)和待寫入源盤的數(shù)據(jù),為待寫入目標(biāo)盤的數(shù)據(jù);S3、使用目標(biāo)盤替換源盤。本發(fā)明通過磁盤預(yù)警技術(shù)預(yù)測磁盤將可能發(fā)生故障,并在故障發(fā)生前就預(yù)先把數(shù)據(jù)遷移到備用盤,比傳統(tǒng)磁盤失效后再恢復(fù)數(shù)據(jù)的方法在RAID組發(fā)生故障時更加優(yōu)選地降低數(shù)據(jù)丟失的可能性。
文檔編號G06F11/00GK102521058SQ20111039400
公開日2012年6月27日 申請日期2011年12月1日 優(yōu)先權(quán)日2011年12月1日
發(fā)明者劉友生, 弓雷, 許泳, 閆永剛 申請人:北京威視數(shù)據(jù)系統(tǒng)有限公司