TWI744039B - 分散式儲存系統及應用於上之資料同步方法 - Google Patents

分散式儲存系統及應用於上之資料同步方法 Download PDF

Info

Publication number
TWI744039B
TWI744039B TW109135682A TW109135682A TWI744039B TW I744039 B TWI744039 B TW I744039B TW 109135682 A TW109135682 A TW 109135682A TW 109135682 A TW109135682 A TW 109135682A TW I744039 B TWI744039 B TW I744039B
Authority
TW
Taiwan
Prior art keywords
network
memory
data
file system
persistent
Prior art date
Application number
TW109135682A
Other languages
English (en)
Other versions
TW202217593A (zh
Inventor
許進興
Original Assignee
威聯通科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 威聯通科技股份有限公司 filed Critical 威聯通科技股份有限公司
Priority to TW109135682A priority Critical patent/TWI744039B/zh
Priority to US17/500,069 priority patent/US11544012B2/en
Application granted granted Critical
Publication of TWI744039B publication Critical patent/TWI744039B/zh
Publication of TW202217593A publication Critical patent/TW202217593A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一種分散式儲存系統及應用於上之資料同步方法,應用於一網路上,該系統包含第一網路主機以及第二網路主機,該第一網路主機所產生的一筆資料透過第一檔案系統所進行之一直接存取作業被直接寫入到第一軟體模擬記憶體中,第一軟體模擬記憶體被第一檔案系統寫入該筆資料時,將該筆資料分別被載入第一遠端區塊元件以及被暫存,收到該筆資料之第一遠端區塊元件將該筆資料透過第一網路模組以及信號連接至第一網路模組之網路傳送出去,而被暫存之該筆資料將非同步更新至第一持久儲存器;以及該筆資料透過網路以及信號連接至網路之第二網路模組傳送至第二軟體模擬記憶體,第二軟體模擬記憶體再將該筆資料暫存並且非同步更新至第二持久儲存器,而且第二網路主機於第一網路主機故障時,取代第一網路主機之服務任務。

Description

分散式儲存系統及應用於上之資料同步方法
本案係為一種分散式儲存系統及應用於上之資料同步方法,尤指 可應用於網際網路上之一種分散式儲存系統及應用於上之資料同步方法。
網際網路之相關技術發展至今,許多的服務皆已透過遠端的網路主機來完成。為了能使服務不中斷,當某一個網路主機發生功能異常時,設置於異地的備援網路主機必須立即啟動並取代之,進而提供一種服務不中斷的使用者體驗。在為能確保在取代異常網路主機而提供服務時,異地備援網路主機的資料是最新的,即時保持各個網路主機中資料的同步便是必須。而目前常被應用的資料同步技術便是一種分佈式複製區塊元件(Distributed Replicated Block Device,以下簡稱DRBD)的技術。
請參見圖1,其係傳統手段中將DRBD技術應用於雙節點高可用性叢集(dual-node high availability clusters)的功能方塊示意圖,其中第一持久儲存器(persistent storage)110主要係提供給第一網路主機11使用,用以儲存第一網路主機11所產生的資料或是由網路遠端傳來的資料。至於第二持久儲存器(persistent storage)120主要係提供給第二網路主機12使用,可用以儲存第二網路主機12所產生的資料或網路遠端傳來的資料。而第一持久儲存器(persistent storage)110與第二持久儲存器(persistent storage)120主要可以是傳統硬碟 (HDD)、固態硬碟(SSD)、其它類似的非揮發性記憶體裝置或是利用上述多個實體裝置虛擬完成。
為方便說明,在本例中之第二網路主機12被設定為第一網路主機11之異地備援主機。為能保持兩個網路主機中資料的同步,當第一網路主機11中應用程式111執行時所產生的一筆資料,透過檔案系統112被傳送到以軟體所完成第一分佈式複製區塊元件(DRBD)113時,第一分佈式複製區塊元件(DRBD)113便將其分別傳至第一持久儲存器110以及以軟體所完成的第一遠端區塊元件(Remote Block Device)114,因此第一持久儲存器110將儲存有該筆資料。至於第一遠端區塊元件114則是將該筆資料透過以軟體所完成的第一網路堆疊與驅動程式(Network Stack & Driver)115、第一網路介面卡裝置116以及第二網路介面卡裝置126所構成之資料傳輸路徑,傳送到位於網路遠端的第二網路主機12。而第二網路主機12之第二網路堆疊與驅動程式125以及第二分佈式複製區塊元件(DRBD)123再將該筆資料更新至第二持久儲存器120。如此一來,第一持久儲存器110以及第二持久儲存器120皆儲存有該筆資料,使得第一持久儲存器110與第二持久儲存器120之間可以保持資料的同步。
但是,現今的作業系統中皆設置有記憶體快取機制(memory cache mechanisms),其目的是為了加速檔案系統(file system)的讀寫速度,例如圖1中以隨機存取記憶體(RAM)所完成之第一頁面快取(page cache)模組117以及第二頁面快取模組127,是現代作業系統中常用的設計,主要是減低對傳統硬碟進行資料讀取以及資料寫入傳統硬碟(HDD)等讀寫速度較慢之持久儲存器(persistent storage)的頻率,用以提昇資料讀寫的效率。因此,應用程式111所產生的該筆資料會被第一檔案系統112先寫入第一頁面快取模組117中暫時儲存而 可被應用程式111再次快速存取。而經過一段時間後,第一頁面快取模組117中的資料才會被檔案系統(file system)112寫入至第一分佈式複製區塊元件(DRBD)113而被更新至第一持久儲存器110以及第二持久儲存器120。於是,當該段時間中第一網路主機11發生功能異常(例如停電或當機),該筆資料就極有可能尚未被寫入至第一分佈式複製區塊元件(DRBD)113,導致未被更新至該等持久儲存器110、120,使得該筆資料遺失而無法被找回。如此一來,即使第二網路主機12取代第一網路主機11來提供服務時,仍會因為該筆資料未能被及時更新至第二持久儲存器120,最後導致第二網路主機12無法完全取得第一網路主機11的所有資料,而無法提供完整的服務。
而如何在不影響系統讀寫效率的情況下,改善上述的資料遺失問題,係為發展本案之一主要目的。
本案為一種分散式儲存系統,應用於一網路上,其包含:一第一網路主機,其上運行一第一檔案系統、一第一軟體模擬記憶體以及一第一遠端區塊元件,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第一網路主機所產生的一筆資料透過該第一檔案系統所進行之一直接存取作業被直接寫入到該第一軟體模擬記憶體中,該第一軟體模擬記憶體被該第一檔案系統寫入該筆資料時,將該筆資料分別被載入該第一遠端區塊元件以及被暫存,收到該筆資料之該第一遠端區塊元件將該筆資料透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去,而被暫存之該筆資料將非同步更新至該第一持久儲存器;以及一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體、以及一第二遠端區塊元件,該第二網路主機包含有一 第二持久儲存器以及一第二網路模組,其中該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且非同步更新至該第二持久儲存器,而且該第二網路主機於該第一網路主機故障時,取代該第一網路主機之服務任務。
根據上述構想,本案所述之分散式儲存系統,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該筆資料為該第一應用程式所產生,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其中收到該筆資料之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出一快取記憶體頁面的請求;該第一分佈式複製持續性記憶體因應該請求而回覆關於該第一快取記憶體的一頁面位址資訊;該第一具直接存取功能之檔案系統便依據該頁面位址資訊而將該筆資料寫入該第一快取記憶體之該頁面中。
根據上述構想,本案所述之分散式儲存系統,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統與該第一檔案系統為相同之檔案系統而為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其中該第二分佈式複製持續性記憶體將該筆資料寫入其管理的該第二快取記憶體後,便發出一第一完成信號通知該第一應用程式。
根據上述構想,本案所述之分散式儲存系統,其中該第一網路模組中包含一第一網路堆疊與驅動程式以及一第一網路介面卡裝置,其中該第一網路堆疊與驅動程式信號連接於該第一軟體模擬記憶體、該第一遠端區塊元件以及該第一網路介面卡裝置,該第一網路介面卡裝置更信號連接於該網路,該第二網路模組中包含一第二網路堆疊與驅動程式以及一第二網路介面卡裝置,其中該第二網路堆疊與驅動程式信號連接於該第二軟體模擬記憶體、該第二遠端區塊元件以及該第二網路介面卡裝置,該第二網路介面卡裝置更信號連接於該網路。
根據上述構想,本案所述之分散式儲存系統,其中一應用程式發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一另一筆資料更新至該第一持久儲存器中,該另一筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;而該另一筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
本案之另一方面為一種分散式儲存系統,應用於一網路上,其包含:一第一網路主機,其上運行一第一應用程式、一第一檔案系統以及一第一軟體模擬記憶體,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第一應用程式發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一筆資料更新至該第一持久儲存器中,該筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;以及一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,其中該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器,而且該第二網路主機於該第一網路主機故障時,取代該第一網路主機之服務任務。
根據上述構想,本案所述之分散式儲存系統,其中該第一網路主機上更運行一第一快取記憶體,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其中收到該記憶體同步系統呼叫之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出得到一同步位址範圍的請求;該第一分佈式複製持續性記憶體因應該請求而回覆(respond)關於該第一快取記憶體中之該同步位址範圍;該第一 具直接存取功能之檔案系統依據該同步位址範圍而進行一持續性記憶體寫回,用以將第一快取記憶體之髒頁面中的整筆資料更新至該第一持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
根據上述構想,本案所述之分散式儲存系統,其中該第一分佈式複製持續性記憶體將該同步位址範圍中的整筆資料透過一資料傳送路徑,來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶體;而該第二分佈式複製持續性記憶體再將該筆資料寫入其管理的該第二快取記憶體中並同步至第二持久儲存器中。
根據上述構想,本案所述之分散式儲存系統,其中該第一網路模組中包含一第一網路堆疊與驅動程式以及一第一網路介面卡裝置,其中該第一網路堆疊與驅動程式信號連接於該第一軟體模擬記憶體、一第一遠端區塊元件以及該第一網路介面卡裝置,該第一網路介面卡裝置更信號連接於該網路,該第二網路模組中包含一第二網路堆疊與驅動程式以及一第二網路介面卡裝置,其中該第二網路堆疊與驅動程式信號連接於該第二軟體模擬記憶體、一第二遠端區塊元件以及該第二網路介面卡裝置,該第二網路介面卡裝置更信號連接於該網路。
根據上述構想,本案所述之分散式儲存系統,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
本案之再一方面係為一種資料同步方法,應用於一第一網路主機、一第二網路主機以及一網路之間,該第一網路主機上運行一第一檔案系統、一第一軟體模擬記憶體以及一第一遠端區塊元件,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第二網路主機上運行一第二檔案系統、一第二軟體模擬記憶體以及一第二遠端區塊元件,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,而該資料同步方法包含下列步驟:該第一網路主機所產生的一筆資料透過該第一檔案系統所進行之一直接存取作業而被直接寫入到該第一軟體模擬記憶體中;該第一軟體模擬記憶體被該第一檔案系統寫入該筆資料時,將該筆資料分別載入該第一遠端區塊元件以及暫存;收到該筆資料之該第一遠端區塊元件將該筆資料透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去,而被暫存之該筆資料稍後被更新至該第一持久儲存器;以及該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
根據上述構想,本案所述之資料同步方法,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該筆資料為該第一應用程式所產生,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體, 該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
根據上述構想,本案所述之資料同步方法,其中收到該筆資料之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出一快取記憶體頁面的請求;該第一分佈式複製持續性記憶體因應該請求而回覆(respond)關於該第一快取記憶體的一頁面位址資訊;該第一具直接存取功能之檔案系統便依據該頁面位址資訊而將該筆資料寫入該第一快取記憶體之該頁面中。
根據上述構想,本案所述之資料同步方法,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
根據上述構想,本案所述之資料同步方法,其中該第二分佈式複製持續性記憶體將該筆資料寫入其管理的該第二快取記憶體後,便發出一第一完成信號通知該第一應用程式。
根據上述構想,本案所述之資料同步方法,其中該第一網路主機發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一另一筆資料更新至該第一持久儲存器中,該另一筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;而該另一筆資料透過該網路以及信號連接至該網路之該第二網路模組傳 送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
根據上述構想,本案所述之資料同步方法,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
本案之又一面係為一種資料同步方法,應用於於一第一網路主機、一第二網路主機以及一網路之間,一第一網路主機,其上運行一第一應用程式、一第一檔案系統以及一第一軟體模擬記憶體,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,而該資料同步方法包含下列步驟:該第一應用程式發起一記憶體同步系統呼叫;該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一筆資料更新至該第一持久儲存器中,該筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;以及該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
根據上述構想,本案所述之資料同步方法,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該記憶體同步系統呼叫為該第一應用程式所發起,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持 續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
根據上述構想,本案所述之資料同步方法,其中收到該記憶體同步系統呼叫之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出得到一同步位址範圍的請求;該第一分佈式複製持續性記憶體因應該請求而回覆關於該第一快取記憶體中之該同步位址範圍;該第一具直接存取功能之檔案系統依據該同步位址範圍而進行一持續性記憶體寫回,用以將第一快取記憶體之髒頁面中的整筆資料更新至該第一持久儲存器。
根據上述構想,本案所述之資料同步方法,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
根據上述構想,本案所述之資料同步方法,其中該第一分佈式複製持續性記憶體將該同步位址範圍中的整筆資料透過一資料傳送路徑,來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶體;而該第二分佈式複製持續性記憶體再將該筆資料寫入其管理的該第二快取記憶體中並同步至第二持久儲存器中。
根據上述構想,本案所述之資料同步方法,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
如此一來,習用手段中所發生關於資料遺失而無法被找回的問題將可被解決,並可保有系統的讀寫效率,進而完成發展本案之主要目的。
11:第一網路主機
110:第一持久儲存器
111、121:應用程式
113:第一分佈式複製區塊元件
114:第一遠端區塊元件
115:第一網路堆疊與驅動程式
116:第一網路介面卡裝置
117:第一頁面快取模組
2:網際網路
21:第一網路主機
210:第一持久儲存器
211:第一應用程式
212:第一具直接存取功能之檔案系統
12:第二網路主機
120:第二持久儲存器
112、122:檔案系統
123:第二分佈式複製區塊元件
124:第二遠端區塊元件
125:第二網路堆疊與驅動程式
126:第二網路介面卡裝置
127:第二頁面快取模組
22:第二網路主機
220:第二持久儲存器
221:第二應用程式
222:第二具直接存取功能之檔案系統
213:第一分佈式複製持續性記憶體
214:第一遠端區塊元件
215:第一網路堆疊與驅動程式
216:第一網路介面卡裝置
217:第一快取記憶體
223:第二分佈式複製持續性記憶體
224:第二遠端區塊元件
225:第二網路堆疊與驅動程式
226:第二網路介面卡裝置
227:第二快取記憶體
圖1,其係將傳統分佈式複製區塊元件(Distributed Replicated Block Device)技術應用於雙節點高可用性叢集(dual-node high availability clusters)的功能方塊示意圖。
圖2,其係本案為改善習用手段之缺失所發展出來,可執行一新穎的資料同步方法的分散式儲存系統較佳實施例功能方塊示意圖。
圖3,其係本案系統將資料寫入記憶體的較佳實施例方法流程圖。
圖4,其係本案系統確保兩個網路主機間資料同步時所進行的記憶體映射方法的流程示意圖。
體現本案特徵與優點的一些典型實施例將在後段的說明中詳細敘述。應理解的是本案能夠在不同的樣態上具有各種的變化,其皆不脫離本案的範圍,且其中的說明及圖式在本質上係當作說明之用,而非用以限制本案。
請參見圖2,其係本案為改善習用手段之缺失所發展出來,可執行一新穎的資料同步方法的分散式儲存系統較佳實施例功能方塊示意圖,其同樣是以應用在雙節點高可用性叢集(dual-node high availability clusters)為例進行說明,其中第一持久儲存器(persistent storage)210主要係提供給第一網路主機21使用,用以儲存第一網路主機21所產生的資料或由網路遠端傳來的資料,而第二持久儲存器(persistent storage)220主要係提供給第二網路主機22使用,用以儲 存第二網路主機22所產生的資料或由網路遠端傳來的資料。在本實施例中,第二網路主機22被設定為第一網路主機211之異地備援主機,兩者可以利用心跳協定(heartbeat protocol)來判斷第一網路主機211是否健康,而第一持久儲存器(persistent storage)210與第二持久儲存器(persistent storage)220主要都是以傳統硬碟(HDD)、固態硬碟(SSD)或其它類似的非揮發性記憶體裝置來完成。當然,為了增加容錯能力與系統穩定度,也可以增設第三網路主機(圖未示出)、第四網路主機(圖未示出)等等,但技術概念可參考第二網路主機22的描述,故不再另文贅述。
由於持續性記憶體(Persistent memory,簡稱PMem,例如Intel所生產的Optane Memory DC)被發展出來,其結合了快閃記憶體(Flash)和動態隨機存取記憶體(DRAM)兩者的特點,其具有即使電源關掉後,所儲存的資料都不會消失的非揮發性(Non-Volatile),而速度方面則已接近動態隨機存取記憶體(DRAM)的速度,延遲比快閃記憶體(Flash)至少低10倍,讀寫速度則為快閃記憶體(Flash)的3倍以上。如此一來,在作業系統的設計中,檔案系統(File System)就有可以直接存取持續性記憶體(PMem)而省略快取記憶體設置的可能性。於是常見的作業系統,例如linux,就提供了第四代擴充套件檔案系統(Fourth extended filesystem,縮寫為ext4),其中便提供了”直接存取功能(DAX)”的指令來增加檔案系統(File System)的功能彈性。換言之,就是檔案系統(File System)可以不進行頁面快取動作(page cache),而直接對持續性記憶體(PMem)中的資料進行存取。
根據上述發現,本案便於第一網路主機21中建立出一第一具直接存取功能之檔案系統(File System)212。而以常見的linux作業系統為例,該第一具 直接存取功能之檔案系統212便是可以支援直接存取功能(DAX)的檔案系統(Direct Access(DAX)Filesystem),例如第四代擴充套件檔案系統(ext4)或是XFS檔案系統。於是,本案再將習用技術中原本以分佈式複製區塊元件(DRBD)概念設置的區塊元件(Block Device),改成一第一分佈式複製持續性記憶體(Distributed Replicated Persistent Memory,以下簡稱DRPM)213。
此第一分佈式複製持續性記憶體(DRPM)213是以軟體形式來模擬出一個持續性記憶體(Persistent Memory),使得該具直接存取功能之檔案系統212可以對該第一分佈式複製持續性記憶體(DRPM)213進行直接存取(DAX)的資料讀寫操作。如此一來,將如圖中之虛線箭號91之所示,第一應用程式211所產生的資料,將透過具直接存取功能之檔案系統212以直接存取(DAX)的方式被直接寫入該第一分佈式複製持續性記憶體(DRPM)213中,而且因為不會進行傳統的頁面快取動作(page cache),所以不會有資料被遺漏在外的問題,如此將可改善習用手段的缺失。
為能保有效率,以軟體形式模擬出之該第一分佈式複製持續性記憶體(DRPM)213與第一持久儲存器(persistent storage)210之間設有一第一快取記憶體217,其在被該第一具直接存取功能之檔案系統212寫入一筆資料時,便被設定成會將該筆資料複製成兩份而可同時載入該第一遠端區塊元件214以及該第一快取記憶體217(如圖中之虛線箭號92之所示)。
先看第一遠端區塊元件214的部份,收到該筆資料之第一遠端區塊元件214便自動將該筆資料透過一第一網路模組(本例是由一第一網路堆疊與驅動程式(Network Stack & Driver)215以及第一網路介面卡裝置216所完成),經過一網路(例如圖中的網際網路2)傳送到位於網路遠端的第二網路主機22的任務。 而第二網路主機22透過其中一第二網路模組中之一第二網路介面卡裝置226傳送到其中之一第二網路堆疊與驅動程式225(如圖中之虛線箭號94之所示),第二網路堆疊與驅動程式225再將該筆資料寫入也是以軟體形式來模擬出的第二分佈式複製持續性記憶體223中(如圖中之虛線箭號95之所示)。如此一來,第一分佈式複製持續性記憶體213以及第二分佈式複製持續性記憶體223皆儲存有該筆資料,使得兩個網路主機之間可以保持最新資料的同步。
再來看主要是以軟體分配的系統記憶體空間所完成之第一快取記憶體217的部分,該筆資料透過Store指令被載入至該第一快取記憶體217(如圖中之虛線箭號92之所示),還是可以將該筆資料暫存在該第一快取記憶體217中,當第一應用程式211再度透過具直接存取功能之檔案系統212來直接存取(DAX)該第一分佈式複製持續性記憶體(DRPM)213中的該筆資料時,暫存在該第一快取記憶體217之該筆資料還是可以提供資料快速存取的性能。另外,暫存在該第一快取記憶體217中之該筆資料會以非同步更新的方式來轉存至該第一持久儲存器210。例如,作業系統(圖未特別示出)可每隔一預設時間(或是被改寫過的資料量大於門檻值)將該第一快取記憶體217中被改寫過的資料對自身第一持久儲存器210中的資料進行更新(如圖中之虛線箭號93之所示),用以儲存正確的資料且不降低讀寫效率。
同樣地,第二分佈式複製持續性記憶體223中之該筆資料在透過Store指令被載入至以軟體分配的系統記憶體空間所完成之第二快取記憶體227(如圖中之虛線箭號96之所示)後,作業系統將會每隔該預設時間(或是被改寫過的資料量大於門檻值)而被改寫至該第二持久儲存器220(如圖中之虛線箭號97之所示),用以在遠端的異地備援主機中儲存有正確的資料。如此一來,習用 手段中所發生關於快取資料遺失而無法被找回的問題被解決,但仍可保持有利用快取資料讀取的系統讀寫效率,進而達到改善上述的資料遺失的缺失,完成發展本案之主要目的。
請參見圖3,其係本案系統將資料寫入記憶體的實施例方法流程圖,用以更清楚地描述本案之技術細節,首先,步驟301為第一應用程式211要將一筆資料寫入一檔案;收到該筆資料之該第一具直接存取功能之檔案系統212(例如第四代擴充套件檔案系統(ext4)或是XFS檔案系統)向該第一分佈式複製持續性記憶體213提出快取記憶體頁面(pages from memory cache)的請求(步驟302);該第一分佈式複製持續性記憶體213因應該請求而回覆(respond)關於該第一快取記憶體217的一頁面位址資訊(步驟303);第一具直接存取功能之檔案系統212便依據該頁面位址資訊而將該筆資料寫入該第一快取記憶體217之該頁面中(步驟304),並將該頁面標示為髒頁面(dirty page)(步驟305);另外,該第一分佈式複製持續性記憶體213將該筆資料透過一資料傳送路徑(例如圖2所示之第一遠端區塊元件214、第一網路模組(第一網路堆疊與驅動程式215以及第一網路介面卡裝置216)、網際網路2以及第二網路主機22中的第二網路模組(第二網路介面卡裝置226、第二網路堆疊與驅動程式225),來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶體223(步驟306);而該第二分佈式複製持續性記憶體223再將該筆資料寫入其管理的該第二快取記憶體217中(步驟307);寫入完成後便可發出一第一完成信號,循該資料傳送路徑反向通知該第一應用程式211(步驟308),進而完成整個資料寫入的動作。如此一來,本案分散式儲存系統在進行資料寫入至記憶體時,將可以完整地完成資料同步而降低遺失資料的可能性。
再請參見圖4,其係本案系統為確保兩個網路主機間資料同步時所進行的記憶體映射方法的流程示意圖。首先,步驟401為第一應用程式211對一記憶體對映檔案(Memory-mapped file)發出一記憶體同步系統呼叫(msync system call);收到該記憶體同步系統呼叫之第一具直接存取功能之檔案系統212(例如第四代擴充套件檔案系統(ext4)或是XFS檔案系統)向該第一分佈式複製持續性記憶體213提出得到同步位址範圍(the address of sync range)的請求(步驟402);該第一分佈式複製持續性記憶體213因應該請求而回覆(respond)關於該第一快取記憶體217中之同步位址的範圍(步驟403);接著,第一具直接存取功能之檔案系統212便依據該同步位址的範圍而進行一持續性記憶體寫回(Persistent Memory flush)(步驟404),用以將第一快取記憶體217之髒頁面(dirty page)中的整筆資料寫回至第一持久儲存器210中(步驟405),進而完成資料更新;另外,該第一分佈式複製持續性記憶體213將該同步位址範圍中的整筆資料(亦第一快取記憶體217之髒頁面(dirty page)中的資料)透過一資料傳送路徑(例如圖2所示之第一遠端區塊元件214、第一網路模組(第一網路堆疊與驅動程式215以及第一網路介面卡裝置216)、網際網路2以及第二網路主機22中的第二網路模組(第二網路介面卡裝置226、第二網路堆疊與驅動程式225),來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶體223(步驟406);而該第二分佈式複製持續性記憶體223再將該筆資料寫入其管理的該第二快取記憶體217中並同步至第二持久儲存器220中(步驟407);同步完成後便可發出一第二完成信號,循該資料傳送路徑反向通知該第一應用程式211(步驟408),進而完成整個資料同步更新的動作。如此一來,本案分散式儲存系統在進行記憶體映射時,將可以完整地完成資料同步而降低遺失資料的可能性。而只要運用上述資料寫入記憶體的方法以 及記憶體映射的方法中的一種方法,就可以有效改善習用分散式儲存系統中遺失資料的缺失。當然,若是兩個方法皆使用,便可以達到最佳的功效增進。
綜上所述,本發明可以讓原本可能遺失的資料被完整更新,而且在不影響此分散式儲存系統讀寫效率的情況下,確保第二網路主機可以成功取代第一網路主機來提供完整的服務,進而改善上述的資料遺失問題,達成發展本案之主要目的。然而,本案得由熟知此技術之人士任施匠思而為諸般修飾,然皆不脫如附申請專利範圍所欲保護者。
2:網際網路
21:第一網路主機
22:第二網路主機
210:第一持久儲存器
220:第二持久儲存器
211:第一應用程式
221:第二應用程式
212:第一具直接存取功能之檔案系統
222:第二具直接存取功能之檔案系統
213:第一分佈式複製持續性記憶體
223:第二分佈式複製持續性記憶體
214:第一遠端區塊元件
224:第二遠端區塊元件
215:第一網路堆疊與驅動程式
225:第二網路堆疊與驅動程式
216:第一網路介面卡裝置
226:第二網路介面卡裝置
217:第一快取記憶體
227:第二快取記憶體

Claims (28)

  1. 一種分散式儲存系統,應用於一網路上,其包含:一第一網路主機,其上運行一第一檔案系統、一第一軟體模擬記憶體以及一第一遠端區塊元件,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第一網路主機所產生的一筆資料透過該第一檔案系統所進行之一直接存取作業被直接寫入到該第一軟體模擬記憶體中,該第一軟體模擬記憶體被該第一檔案系統寫入該筆資料時,將該筆資料分別被載入該第一遠端區塊元件以及被暫存,收到該筆資料之該第一遠端區塊元件將該筆資料透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去,而被暫存之該筆資料將非同步更新至該第一持久儲存器;以及一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體、以及一第二遠端區塊元件,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,其中該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且非同步更新至該第二持久儲存器,而且該第二網路主機於該第一網路主機故障時,取代該第一網路主機之服務任務。
  2. 如請求項1所述之分散式儲存系統,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該筆資料為該第一應用程式所產生,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
  3. 如請求項2所述之分散式儲存系統,其中收到該筆資料之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出一快取記憶體頁面的請求;該第一分佈式複製持續性記憶體因應該請求而回覆關於該第一快取記憶體的一頁面位址資訊;該第一具直接存取功能之檔案系統便依據該頁面位址資訊而將該筆資料寫入該第一快取記憶體之該頁面中。
  4. 如請求項2所述之分散式儲存系統,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統與該第一檔案系統為相同之檔案系統而為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
  5. 如請求項4所述之分散式儲存系統,其中該第二分佈式複製持續性記憶體將該筆資料寫入其管理的該第二快取記憶體後,便發出一第一完成信號通知該第一應用程式。
  6. 如請求項1所述之分散式儲存系統,其中該第一網路模組中包含一第一網路堆疊與驅動程式以及一第一網路介面卡裝置,其中該第一網路堆疊與驅動程式信號連接於該第一軟體模擬記憶體、該第一遠端區塊元件以及該第一網路介面卡裝置,該第一網路介面卡裝置更信號連接於該網路,該第二網路模組中包含一第二網路堆疊與驅動程式以及一第二網路介面卡裝置,其中該第二網路堆疊與驅動程式信號連接於該第二軟體模擬記憶體、該第 二遠端區塊元件以及該第二網路介面卡裝置,該第二網路介面卡裝置更信號連接於該網路。
  7. 如請求項1所述之分散式儲存系統,其中一應用程式發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一另一筆資料更新至該第一持久儲存器中,該另一筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;而該另一筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
  8. 如請求項1所述之分散式儲存系統,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
  9. 一種分散式儲存系統,應用於一網路上,其包含:一第一網路主機,其上運行一第一應用程式、一第一檔案系統以及一第一軟體模擬記憶體,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第一應用程式發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一筆資料更新至該第一持久儲存器中,該筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;以及一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,其中該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶 體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器,而且該第二網路主機於該第一網路主機故障時,取代該第一網路主機之服務任務。
  10. 如請求項9所述之分散式儲存系統,其中該第一網路主機上更運行一第一快取記憶體,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
  11. 如請求項10所述之分散式儲存系統,其中收到該記憶體同步系統呼叫之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出得到一同步位址範圍的請求;該第一分佈式複製持續性記憶體因應該請求而回覆(respond)關於該第一快取記憶體中之該同步位址範圍;該第一具直接存取功能之檔案系統依據該同步位址範圍而進行一持續性記憶體寫回,用以將第一快取記憶體之髒頁面中的整筆資料更新至該第一持久儲存器。
  12. 如請求項11所述之分散式儲存系統,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
  13. 如請求項12所述之分散式儲存系統,其中該第一分佈式複製持續性記憶體將該同步位址範圍中的整筆資料透過一資料傳送路徑,來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶 體;而該第二分佈式複製持續性記憶體再將該筆資料寫入其管理的該第二快取記憶體中並同步至第二持久儲存器中。
  14. 如請求項9所述之分散式儲存系統,其中該第一網路模組中包含一第一網路堆疊與驅動程式以及一第一網路介面卡裝置,其中該第一網路堆疊與驅動程式信號連接於該第一軟體模擬記憶體、一第一遠端區塊元件以及該第一網路介面卡裝置,該第一網路介面卡裝置更信號連接於該網路,該第二網路模組中包含一第二網路堆疊與驅動程式以及一第二網路介面卡裝置,其中該第二網路堆疊與驅動程式信號連接於該第二軟體模擬記憶體、一第二遠端區塊元件以及該第二網路介面卡裝置,該第二網路介面卡裝置更信號連接於該網路。
  15. 如請求項9所述之分散式儲存系統,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
  16. 一種資料同步方法,應用於一第一網路主機、一第二網路主機以及一網路之間,該第一網路主機上運行一第一檔案系統、一第一軟體模擬記憶體以及一第一遠端區塊元件,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,該第二網路主機上運行一第二檔案系統、一第二軟體模擬記憶體以及一第二遠端區塊元件,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,而該資料同步方法包含下列步驟:該第一網路主機所產生的一筆資料透過該第一檔案系統所進行之一直接存取作業而被直接寫入到該第一軟體模擬記憶體中;該第一軟體模擬記憶體被該第一檔案系統寫入該筆資料時,將該筆資料分別載入該第一遠端區塊元件以及暫存; 收到該筆資料之該第一遠端區塊元件將該筆資料透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去,而被暫存之該筆資料稍後被更新至該第一持久儲存器;以及該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
  17. 如請求項16所述之資料同步方法,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該筆資料為該第一應用程式所產生,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
  18. 如請求項17所述之資料同步方法,其中收到該筆資料之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出一快取記憶體頁面的請求;該第一分佈式複製持續性記憶體因應該請求而回覆(respond)關於該第一快取記憶體的一頁面位址資訊;該第一具直接存取功能之檔案系統便依據該頁面位址資訊而將該筆資料寫入該第一快取記憶體之該頁面中。
  19. 如請求項17所述之資料同步方法,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
  20. 如請求項19所述之資料同步方法,其中該第二分佈式複製持續性記憶體將該筆資料寫入其管理的該第二快取記憶體後,便發出一第一完成信號通知該第一應用程式。
  21. 如請求項16所述之資料同步方法,其中該第一網路主機發起一記憶體同步系統呼叫,該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一另一筆資料更新至該第一持久儲存器中,該另一筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;而該另一筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
  22. 如請求項16所述之資料同步方法,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
  23. 一種資料同步方法,應用於於一第一網路主機、一第二網路主機以及一網路之間,一第一網路主機,其上運行一第一應用程式、一第一檔案系統以及一第一軟體模擬記憶體,該第一網路主機包含有一第一持久儲存器以及一第一網路模組,一第二網路主機,其上運行一第二檔案系統、一第二軟體模擬記憶體,該第二網路主機包含有一第二持久儲存器以及一第二網路模組,而該資料同步方法包含下列步驟:該第一應用程式發起一記憶體同步系統呼叫;該第一檔案系統因應該記憶體同步系統呼叫而使該第一軟體模擬記憶體中之一筆資料更新至該第一持久儲存器中,該筆資料亦透過該第一網路模組以及信號連接至該第一網路模組之該網路傳送出去;以及 該筆資料透過該網路以及信號連接至該網路之該第二網路模組傳送至該第二軟體模擬記憶體,該第二軟體模擬記憶體再將該筆資料暫存並且更新至該第二持久儲存器。
  24. 如請求項23所述之資料同步方法,其中該第一網路主機上更運行一第一應用程式以及一第一快取記憶體,其中該記憶體同步系統呼叫為該第一應用程式所發起,該第一檔案系統為一第一具直接存取功能之檔案系統,可以支援直接存取功能,該第一軟體模擬記憶體為一第一分佈式複製持續性記憶體,該第一快取記憶體用來暫存該第一軟體模擬記憶體中之該筆資料並稍後更新至該第一持久儲存器。
  25. 如請求項24所述之資料同步方法,其中收到該記憶體同步系統呼叫之該第一具直接存取功能之檔案系統向該第一分佈式複製持續性記憶體提出得到一同步位址範圍的請求;該第一分佈式複製持續性記憶體因應該請求而回覆關於該第一快取記憶體中之該同步位址範圍;該第一具直接存取功能之檔案系統依據該同步位址範圍而進行一持續性記憶體寫回,用以將第一快取記憶體之髒頁面中的整筆資料更新至該第一持久儲存器。
  26. 如請求項25所述之資料同步方法,其中該第二網路主機上更運行一第二應用程式以及一第二快取記憶體,其中該第一應用程式與該第二應用程式為相同之應用程式,該第二檔案系統為一第二具直接存取功能之檔案系統,可以支援直接存取功能,該第二軟體模擬記憶體為一第二分佈式複製持續性記憶體,該第二快取記憶體用來暫存該第二軟體模擬記憶體中之該筆資料並稍後更新至該第二持久儲存器。
  27. 如請求項26所述之資料同步方法,其中該第一分佈式複製持續性記憶體將該同步位址範圍中的整筆資料透過一資料傳送路徑,來將該筆資料寫入在遠端也是以軟體形式來模擬出的第二分佈式複製持續性記憶 體;而該第二分佈式複製持續性記憶體再將該筆資料寫入其管理的該第二快取記憶體中並同步至第二持久儲存器中。
  28. 如請求項23所述之資料同步方法,其所應用於上之該網路為網際網路,其中該第一持久儲存器與該第二持久儲存器皆以可讀寫之非揮發性記憶體來完成。
TW109135682A 2020-10-15 2020-10-15 分散式儲存系統及應用於上之資料同步方法 TWI744039B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109135682A TWI744039B (zh) 2020-10-15 2020-10-15 分散式儲存系統及應用於上之資料同步方法
US17/500,069 US11544012B2 (en) 2020-10-15 2021-10-13 Distributed storage system and data synchronization method applied thereto

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109135682A TWI744039B (zh) 2020-10-15 2020-10-15 分散式儲存系統及應用於上之資料同步方法

Publications (2)

Publication Number Publication Date
TWI744039B true TWI744039B (zh) 2021-10-21
TW202217593A TW202217593A (zh) 2022-05-01

Family

ID=80782747

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109135682A TWI744039B (zh) 2020-10-15 2020-10-15 分散式儲存系統及應用於上之資料同步方法

Country Status (2)

Country Link
US (1) US11544012B2 (zh)
TW (1) TWI744039B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180316758A1 (en) * 2015-12-15 2018-11-01 Netapp, Inc. Method and apparatus for logical mirroring to a multi-tier target node
TW201937375A (zh) * 2018-02-05 2019-09-16 美商美光科技公司 對持續性記憶體之cpu快取刷新
US20200125582A1 (en) * 2018-10-19 2020-04-23 Oracle International Corporation Database replication based on data access scores
TW202026905A (zh) * 2019-01-08 2020-07-16 資易國際股份有限公司 高可用度資料庫系統

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754802B2 (en) * 2019-01-09 2020-08-25 Intel Corporation Dynamically remapping in-process data transfers
US10803006B1 (en) * 2019-04-01 2020-10-13 MemVerge, Inc Persistent memory key-value store in a distributed memory architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180316758A1 (en) * 2015-12-15 2018-11-01 Netapp, Inc. Method and apparatus for logical mirroring to a multi-tier target node
TW201937375A (zh) * 2018-02-05 2019-09-16 美商美光科技公司 對持續性記憶體之cpu快取刷新
US20200125582A1 (en) * 2018-10-19 2020-04-23 Oracle International Corporation Database replication based on data access scores
TW202026905A (zh) * 2019-01-08 2020-07-16 資易國際股份有限公司 高可用度資料庫系統

Also Published As

Publication number Publication date
TW202217593A (zh) 2022-05-01
US20220121370A1 (en) 2022-04-21
US11544012B2 (en) 2023-01-03

Similar Documents

Publication Publication Date Title
US8296534B1 (en) Techniques for using flash-based memory in recovery processing
US7793061B1 (en) Techniques for using flash-based memory as a write cache and a vault
US5263154A (en) Method and system for incremental time zero backup copying of data
TWI465906B (zh) 用以執行無原子元資料之電力故障安全快取的技術
US7587564B2 (en) System, method and computer program product for managing data versions
JP3641183B2 (ja) Raidデータ記憶システムにおける瞬時バックアップを提供する方法及びシステム
US7409510B2 (en) Instant virtual copy to a primary mirroring portion of data
US6604171B1 (en) Managing a cache memory
US6591335B1 (en) Fault tolerant dual cache system
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
TWI531901B (zh) 群組表資料沖除技術
JP2006268139A (ja) データ複製装置、方法及びプログラム並びに記憶システム
CN112035294B (zh) 安全日志文件系统及其实现方法和介质
US11880566B2 (en) Storage system and control method of storage system including a storage control unit that performs a data amount reduction processing and an accelerator
CN109313593A (zh) 存储系统
JP7318367B2 (ja) ストレージ制御装置及びストレージ制御プログラム
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US20160036653A1 (en) Method and apparatus for avoiding performance decrease in high availability configuration
TWI744039B (zh) 分散式儲存系統及應用於上之資料同步方法
CN112748865A (zh) 用于存储管理的方法、电子设备和计算机程序产品
WO2022033269A1 (zh) 数据处理的方法、设备及系统
JP2007034551A (ja) データの二重化管理方法
CN107797885B (zh) 电子设备及其控制方法
US10656867B2 (en) Computer system, data management method, and data management program
US11693565B2 (en) Storage volume synchronizations responsive to communication link recoveries