补休是什么意思| 精虫上脑什么意思| 蜜蜡是什么材料| 直男什么意思| 1947年属猪的是什么命| 过敏性荨麻疹吃什么药| 女人颧骨高有什么说法| 腰椎ct能查出什么| 第一颗原子弹叫什么| 红色尿液是什么原因| 伤口发痒是什么原因| 滥竽充数的滥是什么意思| 佛山有什么特产| 阳虚吃什么药效果最好| 长期尿黄可能是什么病| 肉松是什么做的| 血脂和血糖有什么区别| 慧外秀中什么意思| 老子和孔子是什么关系| 肾阴虚吃什么药最好| 血癌是什么原因造成的| 游离甲状腺素偏低是什么意思| 西汉与东汉有什么区别| 亲情是什么意思| 股骨径是指胎儿什么| 乳酸高是什么原因| uspa是什么牌子| 笑死是什么意思| 腰的左侧疼是什么原因| 溥仪什么时候去世的| 奔现是什么意思| 叒字什么意思| 什么叫便溏| 腌肉放什么调料| 组织部副部长是什么级别| 扫描件是什么意思| 外阴瘙痒用什么洗| 什么材质可以放微波炉加热| 吃甲硝唑有什么副作用| 二月二十二日是什么星座| ppd试验是什么意思| 2月13号是什么星座| 清热败火的败是什么意思| 告示是什么意思| 肛门里面痒是什么原因| 梦见自己掉头发是什么意思| 9.1什么星座| 为什么刚小便完又有尿意| 油菜花是什么颜色| 杜康原是什么| 喝什么泡水降血压最好| 胃有灼热感是什么原因| 血管痉挛是什么原因引起的| cashmere是什么意思| 小雪时节吃什么| 植物油是什么油| 朱元璋是什么民族| 飞黄腾达是什么生肖| 马达是什么| 为什么喝纯牛奶会拉肚子| cache是什么意思| champion什么意思| 鱼豆腐是什么做的| 经期延长是什么原因引起的| 儿童发育过早应该挂什么科| 牙神经拔了对牙齿有什么影响| 丑拒是什么意思| 0604是什么日子| e m s是什么快递| 什么酒不能喝打一生肖| 刘封为什么不救关羽| 普外科是看什么病的| 孕妇口腔溃疡能用什么药| 干咳吃什么药| 天的反义词是什么| 为什么会甲减| 蜂蜜加白醋有什么功效| 失信人是什么意思| 叫舅舅的是什么关系| 骨折和骨裂有什么区别| 五劳七伤什么生肖| 爸爸的哥哥叫什么| 澳门是什么时候被葡萄牙占领的| 什么是机械表| 睡莲什么时候开花| 柱镜是什么意思| 男人鼻头有痣代表什么| ige是什么意思| 打2个喷嚏代表什么| 凉皮用什么做的| 腿上无缘无故出现淤青是什么原因| 血小板低吃什么食物补得快| 香醋和陈醋有什么区别| 烂仔是什么意思| 十二指肠球部溃疡吃什么药| 牙膏洗脸有什么好处和坏处| 飞秒是什么| 泉州有什么好吃的| 姨妈期可以吃什么水果| 男性什么适合长期泡水喝| 孕妇吃什么补钙| 高粱是什么| 什么水果对嗓子好| 7月18号是什么日子| 孕妇吃鹅蛋有什么好处| 猛犸象什么时候灭绝的| 螺蛳粉是什么做的| 一月14号是什么星座| 什么是国企单位| 羊肉馅饺子放什么菜| 超敏c反应蛋白正常说明什么| 什么什么不什么| 什么人不能喝大麦茶| 导览是什么意思| 吃什么清肺养肺| 什么是土象星座| 89年蛇是什么命| 树大招风的意思是什么| 什么是文爱| 查凝血酶能查出什么病| sei是什么意思| 羊传染人的病叫什么名| 沟壑什么意思| 余字五行属什么| egc是什么意思| 神气活现是什么意思| 弓加耳念什么| 三心二意是指什么生肖| 什么蛋不能吃| 加味逍遥丸和逍遥丸有什么区别| 10岁属什么| 甲功五项能查出什么病| 什么时候同房最容易怀孕| 晨勃是什么意思啊| 中医内科主要看什么| 飞机联程票是什么意思| 支付宝余额和余额宝有什么区别| 梦见着火是什么意思| 晚上搬家有什么说法| 狮子吃什么| 鳄鱼为什么会流泪| 疯狂动物城闪电是什么动物| 中国的国花是什么| 吃猪肺有什么好处和坏处| 马蜂窝能治什么病| 提拉米苏是什么意思| 数字1代表什么意思| 男生为什么会晨勃| 手指头脱皮是什么原因| 明胶是什么做的| 肌层彩色血流星点状是什么意思| 月经不来是什么原因| 西洋参有什么功效和作用| 什么水果可以泡酒| 吃什么食物对头发好| 褪黑素什么时候吃| 气泡音是什么意思| 男人长期喝什么茶最好| 肝阳上亢吃什么药| 二重唱是什么意思| 老花眼有什么办法可以恢复| 2月23日什么星座| 11.11什么星座| 12年属什么生肖| 32属什么生肖| 乘风破浪的意思是什么| 新陈代谢是什么意思| 什么是梨形身材| 女性尿道炎挂什么科| 三马念什么| 土地出让和划拨有什么区别| 网络维护是做什么的| 少尉是什么级别| 反胃恶心想吐吃什么药| 乐加是什么药| 憋屈是什么意思| 寒气和湿气有什么区别| 叉烧炒什么菜好吃| daily什么意思| 越描越黑是什么意思| 冬枣什么时候成熟| 与生俱来是什么意思| 三月底是什么星座| 孕酮低有什么影响| 虎父无犬子什么意思| 杭州有什么好吃的| 武警支队是什么级别| 温碧泉适合什么年龄| 吃猪脑有什么好处和坏处| 荨麻疹抹什么药| 燕子吃什么食物| 出汗少的人是什么原因| 氯是什么| 能说会道是什么生肖| 怀孕早期有什么症状| 爸爸的哥哥的老婆叫什么| 吃了避孕药后几天出血是什么原因| 牛字五行属什么| 一月十五号是什么星座| 什么是教育| 吃桂圆干有什么好处和坏处| haccp是什么认证| none是什么意思| 火文念什么| 狼毫毛笔是什么毛| 九点到十点是什么时辰| 我宣你 是什么意思| 政绩是什么意思| 常喝枸杞泡水有什么好处| 二级医院什么意思| 木命人五行缺什么| 吃头孢不能吃什么水果| 陈皮是什么水果的皮| 凉粉是什么原料做的| 圣经是什么时候写的| 摩羯座是什么象| 蘖是什么意思| 高五行属什么| 血小板减少是什么原因| 鼎字五行属什么| 本性难移是什么生肖| 什么药膏能让疣体脱落| 做梦踩到屎是什么意思| 双眸是什么意思| 编程是什么专业| 50至60岁吃什么钙片好| 什么是普惠性幼儿园| 端坐呼吸常见于什么病| 一朝一夕是什么意思| 男士内裤买什么牌子好| 办理生育登记有什么用| 单亲家庭是指什么| 菠菜吃多了有什么害处| 丹毒用什么药膏| 足贴为什么变黑出油| 粉色是什么颜色配成的| 三点水开念什么意思| 畸胎瘤是什么| 儿童c反应蛋白高说明什么| 四相是什么意思| 吃什么可以来月经最快最有效| 氟哌酸是什么药| 什么是阑尾炎| messi是什么意思| 壁立千仞无欲则刚是什么意思| 女人什么年龄性最旺| 狗狗耳螨用什么药| 子虚乌有是什么意思| 手指抽筋是什么原因| 地高辛是什么药| 黄瓜有什么功效| 皮肤上出现小红点是什么原因| 长期便秘吃什么药好| 罹患率是什么意思| 荷花什么时候开放| 芭乐是什么季节的水果| 一黑一白是什么蛇| 助听器什么牌子的好| 结论是什么意思| 强硬是什么意思| 保健品是什么| 来例假腰疼是什么原因| 胃肠镜检查挂什么科| 疝气嵌顿是什么意思| 百度

华为服务133亿美元背后:客户商业成功才是真..

Method and system for data replication Download PDF

Info

Publication number
US9792941B2
US9792941B2 US13/069,473 US201113069473A US9792941B2 US 9792941 B2 US9792941 B2 US 9792941B2 US 201113069473 A US201113069473 A US 201113069473A US 9792941 B2 US9792941 B2 US 9792941B2
Authority
US
United States
Prior art keywords
replica
data
storage device
snapshot
stored
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
US13/069,473
Other versions
US20120243395A1 (en
Inventor
Christopher John Farey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STORMAGIC Ltd
Original Assignee
STORMAGIC Ltd
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 STORMAGIC Ltd filed Critical STORMAGIC Ltd
Priority to US13/069,473 priority Critical patent/US9792941B2/en
Assigned to STORMAGIC LIMITED reassignment STORMAGIC LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FAREY, CHRISTOPHER JOHN
Publication of US20120243395A1 publication Critical patent/US20120243395A1/en
Application granted granted Critical
Publication of US9792941B2 publication Critical patent/US9792941B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/86Re-recording, i.e. transcribing information from one magnetisable record carrier on to one or more similar or dissimilar record carriers
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Definitions

  • the present invention relates to relates generally to the field of data replication within distributed computer systems.
  • storage devices e.g. disk drives
  • storage devices may fail over time or may be lost due to theft or natural disasters such as fire.
  • hardware can usually be replaced with relative ease, the loss of data can be catastrophic as another copy cannot simply be purchased off the shelf. Therefore, individual users and organizations typically create backup copies of data so that in the event of a hardware loss, such as disk failure, normal operations can be resumed with minimal disruption.
  • Virtualization techniques can be used within networks to create and maintain (in real-time) a replica of the data set on other storage devices, the replica being updated over time as the data changes in response to write operations. In this way, reliable access to the data may be preserved via the remotely stored replica if the local storage device becomes inoperable, whilst maintaining high availability of data and functionality. Thus, whilst a backup copy may remain unchanged for a relatively long period of time, a replica will be updated frequently as a result of applications which are running and writing updates to the data set.
  • Several known replication techniques have been developed to copy data to other storage devices.
  • Mirroring is a known data replication technique where the contents of a logical disk volume are copied onto other storage devices. Each time a write operation occurs, the data is copied from the host server to the other storage devices. These other storage devices may be situated locally or remotely, or may sometimes be provided as a combination of both. As multiple copies of the data exist, the data can be retrieved from at least one of those copies should a hardware failure occur. Typically, the data is mirrored onto physical devices (hard drives) although logical drives may also be used. Moreover, replication may be implemented as microcode on a disk array controller or as software running on a server. FIG. 1 shows a simple illustration of a prior art mirroring arrangement.
  • mirroring may often be used.
  • storage replication is typically used when larger geographical distances are involved.
  • Various replication techniques are known.
  • Synchronous storage replication is a known data replication technique where identical copies of the data are stored on separate storage devices in communication with the host server.
  • the server needs to know when the data has been copied to each and every storage device.
  • each storage device sends a receipt when it has received and stored the data.
  • the write is only considered complete when it has been performed on, and acknowledged by, all the storage devices. If one of the storage devices fails to acknowledge completion of the write operation, then the overall write operation is deemed not to have been completed.
  • the advantage of this approach is that high availability is possible. If one copy of the data becomes unavailable to the host server, the host server can instantly fail over and use another copy of the data, in the knowledge that the copy it is accessing contains data exactly as expected; no consistency checking of the data is necessary.
  • Asynchronous storage replication is a known data replication technique where separate storage devices are used to store copies of the data. Although all storage devices are updated when a write operation is requested by an application, the write operation is considered complete as soon as (only) one designated storage device acknowledges it. Whilst long-distance performance is greatly increased in comparison to the synchronous approach, if the designated storage device fails then the other storage device(s) are not guaranteed to store the current copy of data. Thus, whilst synchronous mirroring usually achieves a Recovery Point Objective (RPO) of zero lost data, with asynchronous writing the most recent updates to the data may be lost and the application data stored may not be self consistent. Thus, there is a problem of ‘crash-consistency’ which typically necessitates data consistency checking and repair before the copy is usable.
  • RPO Recovery Point Objective
  • Point-in-time replication is a known data replication technique where snapshots of the data are taken periodically. A read-only copy of the data is taken at a particular point in time. Once the initial copy has been created, subsequent snapshots need only copy the updates (i.e. changes) which are made to the data set held on the storage device, allowing applications to continue writing data to the local storage device whilst the snapshots are being taken. This has the advantage that the snapshots can be taken at such times when applications have been quiesced, memory caches have been flushed and the copied data is guaranteed to be self-consistent.
  • a snapshot is taken of the relevant portion of data before the change is made.
  • the pre-write data is copied into the snapshot and then the write operation is performed, updating the original data volume. This is known as the ‘copy-on-write’ approach to snapshots.
  • the replica on the remote storage device can then be updated using the copied blocks of data which have been stored in the snapshot.
  • the update of the replica data set can be performed periodically (for example, every half an hour).
  • a snapshot is typically implemented using an empty data store and a system of pointers to reference the replica.
  • the replica can be maintained over smaller, less expensive lower bandwidth links than would be required for a synchronous mirror.
  • the problems of the prior art are solved by the present invention, which provides an efficient mechanism to maintaining a remote replica of a storage device, the replica being updated periodically from a snapshot.
  • a method for maintaining a replica of a storage device comprising the steps:
  • the replica is a copy of the storage device.
  • the replica may be stored on a separate (i.e. physically distinct) storage device to the original storage device. (By ‘original’ storage device it is meant the storage device that is being replicated).
  • the storage device upon which the replica is stored may be remotely located from the original storage device upon which the original data is stored. This provides the advantage that if the local storage device (upon which the data set is stored) is lost, the data may be retrieved using the replica.
  • the metadata is stored in a journal (or ‘list’ or ‘log’) on a separate storage device, to avoid the use of the journal affecting the performance of the replicated storage device.
  • the storage device and the replica are stored on physical disk devices.
  • the storage device and the replica may be stored on random access block-structured storage devices.
  • the metadata comprises a Logical Block Address.
  • the Logical Block Address may specify the first address in the replica where an update is to be copied to.
  • the metadata comprises a Block Count.
  • the Block Count may specify how many data blocks the update is to occupy in the replica.
  • the metadata is sorted prior to updating the replica.
  • the metadata is sorted by the Logical Block Address.
  • the process of updating the replica may be made more efficient as a result of pre-sorting the metadata. The efficiency may be improved because less mechanical movement may be required of the storage device during the update process, thus taking less time to complete.
  • the metadata is merged prior to updating the replica.
  • the merging process is performed in relation to the Logical Block Address.
  • the process of updating the replica may be made more efficient as a result of merging the metadata. The efficiency may be improved because less mechanical movement may be required of the storage device during the update process, thus taking less time to complete.
  • the snapshot contents i.e. the blocks copied from the original volume
  • the stored metadata relating to the updates in the snapshot may be deleted after the replica has been updated.
  • a computer-implemented system for maintaining a replica of the contents of a storage device comprising:
  • the computer-implemented system may be configured to implement the method of claim 1 .
  • the data volume may be the contents of a single logical or physical storage device.
  • the computer-implemented system may comprise software configured to sort and/or merge the metadata prior to updating the replica so as to enhance or preserve the efficiency of the updating of the replica.
  • FIG. 1 shows a conceptual view of the present invention.
  • a data volume is stored on a local storage device and a replica of that data volume is stored on a physically remote device.
  • the local and remote storage devices are random-access block storage devices.
  • a block device such as a hard drive, is one which reads and writes data in blocks of a predetermined size. Each block is identified by a unique address ranging sequentially from 0 to N ? 1, where N is the number of blocks on the disk.
  • a read/write head is positioned on the end of an arm provided just above the surface of the disk, the arm being able to move in and out over the surface of the disk as it rotates underneath the head.
  • a hard drive will consist of a stack of hard disks with arms (and their respective read/write heads) provided between each disk. If a block of data is to be accessed (read from or written to the disk), the head must be positioned over the relevant block. If the block is some distance away on the disk from the current location of the head, a delay will ensue because the head will need to travel towards or away from the centre of the disk to the correct location (seek time) and the disk will need to rotate to bring the required portion of the surface area directly under the head (rotational delay).
  • journal (or ‘list’ or ‘log’) is also provided.
  • metadata relating to that copy is inserted into the metadata journal.
  • the metadata comprises two numeric values as follows:
  • the metadata journal also grows because each update inserted into the snapshot has metadata associated with it.
  • the replica After a period of time, the replica will be refreshed or updated to reflect the changes which have occurred to the data set since the replica was last updated.
  • the contents of the snapshot are then inserted into the replica at the block addresses specified by the metadata in the journal.
  • the metadata can be processed prior to updating the replica. This may involve ordering and/or merging the metadata.
  • the metadata journal contains the following pairs of values for three updates stored in the snapshot as follows:
  • the metadata journal contains the following pairs of values for three updates stored in the snapshot as follows:
  • the first update is copied from the snapshot to the replica starting at address 10.
  • the second update is copied into the replica starting at block 50.
  • the arm has to move past block 30 to jump to block 50. Then, it must move back again to block 30 in order to write the third update into the replica. If, however, the metadata items are sorted (such that the updates are written starting at addresses 10, 30 and 50 in sequence) less mechanical movement is required of the device, thus improving efficiency.
  • the present invention provides the following advantages:

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method and system of replicating data stored on a storage device where an update is stored in a snapshot. The update includes a copy of at least one portion of the data stored on the storage device. Metadata relating to the update is also stored. The replica is periodically updated by copying the contents of the snapshot into the replica in accordance with the stored metadata. After the replica is updated, the snapshot can be deleted.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to relates generally to the field of data replication within distributed computer systems.
2. Related Art
It is well known that storage devices (e.g. disk drives) may fail over time or may be lost due to theft or natural disasters such as fire. However, whilst hardware can usually be replaced with relative ease, the loss of data can be catastrophic as another copy cannot simply be purchased off the shelf. Therefore, individual users and organizations typically create backup copies of data so that in the event of a hardware loss, such as disk failure, normal operations can be resumed with minimal disruption.
Typically, a large organization will back up the contents of its disk drives onto (relatively slow) tape storage devices. However, a considerable length of time, perhaps several hours, may be required to take a full backup of a large data set and so backups often have to be made during ‘down times’ such as overnight or out of business hours. Furthermore, inconsistencies can arise if changes are made to the data while the backup is in progress and so write operations may need to be blocked while the backup is being created. However, this unavailability is not acceptable to organizations which require uninterrupted access to their data.
Therefore, it is advantageous to create an instantaneous copy of a disk's contents while applications are running. Virtualization techniques can be used within networks to create and maintain (in real-time) a replica of the data set on other storage devices, the replica being updated over time as the data changes in response to write operations. In this way, reliable access to the data may be preserved via the remotely stored replica if the local storage device becomes inoperable, whilst maintaining high availability of data and functionality. Thus, whilst a backup copy may remain unchanged for a relatively long period of time, a replica will be updated frequently as a result of applications which are running and writing updates to the data set. Several known replication techniques have been developed to copy data to other storage devices.
Mirroring
Mirroring is a known data replication technique where the contents of a logical disk volume are copied onto other storage devices. Each time a write operation occurs, the data is copied from the host server to the other storage devices. These other storage devices may be situated locally or remotely, or may sometimes be provided as a combination of both. As multiple copies of the data exist, the data can be retrieved from at least one of those copies should a hardware failure occur. Typically, the data is mirrored onto physical devices (hard drives) although logical drives may also be used. Moreover, replication may be implemented as microcode on a disk array controller or as software running on a server. FIG. 1 shows a simple illustration of a prior art mirroring arrangement.
When this process is performed over a relatively short geographical distance, the term ‘mirroring’ may often be used. However, the term ‘storage replication’ is typically used when larger geographical distances are involved. Various replication techniques are known.
Synchronous Storage Replication
Synchronous storage replication is a known data replication technique where identical copies of the data are stored on separate storage devices in communication with the host server. When performing a write operation, the server needs to know when the data has been copied to each and every storage device. Thus, each storage device sends a receipt when it has received and stored the data. The write is only considered complete when it has been performed on, and acknowledged by, all the storage devices. If one of the storage devices fails to acknowledge completion of the write operation, then the overall write operation is deemed not to have been completed.
The advantage of this approach is that high availability is possible. If one copy of the data becomes unavailable to the host server, the host server can instantly fail over and use another copy of the data, in the knowledge that the copy it is accessing contains data exactly as expected; no consistency checking of the data is necessary.
However, as applications running on the server may wait for a write operation to complete before proceeding with other operations, the overall performance of the system can decrease considerably if it takes some time for the acknowledgement to be received by the server. This latency problem increases over large geographical distances, and so synchronous replication is only really practical over smaller distances.
Asynchronous Storage Replication
Asynchronous storage replication is a known data replication technique where separate storage devices are used to store copies of the data. Although all storage devices are updated when a write operation is requested by an application, the write operation is considered complete as soon as (only) one designated storage device acknowledges it. Whilst long-distance performance is greatly increased in comparison to the synchronous approach, if the designated storage device fails then the other storage device(s) are not guaranteed to store the current copy of data. Thus, whilst synchronous mirroring usually achieves a Recovery Point Objective (RPO) of zero lost data, with asynchronous writing the most recent updates to the data may be lost and the application data stored may not be self consistent. Thus, there is a problem of ‘crash-consistency’ which typically necessitates data consistency checking and repair before the copy is usable.
Point-in-Time Replication
Point-in-time replication is a known data replication technique where snapshots of the data are taken periodically. A read-only copy of the data is taken at a particular point in time. Once the initial copy has been created, subsequent snapshots need only copy the updates (i.e. changes) which are made to the data set held on the storage device, allowing applications to continue writing data to the local storage device whilst the snapshots are being taken. This has the advantage that the snapshots can be taken at such times when applications have been quiesced, memory caches have been flushed and the copied data is guaranteed to be self-consistent.
When an application wants to perform a write operation on a block (or several blocks) of data on the local disk, a snapshot is taken of the relevant portion of data before the change is made. The pre-write data is copied into the snapshot and then the write operation is performed, updating the original data volume. This is known as the ‘copy-on-write’ approach to snapshots. The replica on the remote storage device can then be updated using the copied blocks of data which have been stored in the snapshot. The update of the replica data set can be performed periodically (for example, every half an hour).
By copying the soon-to-be-changed blocks of data to a snapshot on another storage device, an historical record of the data can be maintained. Should the local disk then fail, preventing access to the original data volume, the data can be retrieved from the updated replica on the remote device.
A snapshot is typically implemented using an empty data store and a system of pointers to reference the replica. Advantageously, as only the changed data is copied during replication, rather than the entire contents of the storage device, the replica can be maintained over smaller, less expensive lower bandwidth links than would be required for a synchronous mirror.
However, the snapshot of changes grows over time as more write operations are performed on the data. It is also known that in practice, organizations have a tendency to keep the snapshot data for an extended period of time, thus using up resources. These factors can cause the performance of replicated storage to degrade.
SUMMARY OF THE INVENTION
The problems of the prior art are solved by the present invention, which provides an efficient mechanism to maintaining a remote replica of a storage device, the replica being updated periodically from a snapshot.
In accordance with a first aspect of the present invention there is provided a method for maintaining a replica of a storage device, the method comprising the steps:
    • i) storing an update in a snapshot, the update comprising a copy of at least one portion of the data stored on the storage device;
    • ii) storing metadata relating to the update; and
    • iii) periodically updating the replica by copying the contents of the snapshot into the replica in accordance with the stored metadata.
      Optionally, the snapshot may be deleted. The snapshot may be deleted after step iii).
Preferably, the replica is a copy of the storage device. The replica may be stored on a separate (i.e. physically distinct) storage device to the original storage device. (By ‘original’ storage device it is meant the storage device that is being replicated).
The storage device upon which the replica is stored may be remotely located from the original storage device upon which the original data is stored. This provides the advantage that if the local storage device (upon which the data set is stored) is lost, the data may be retrieved using the replica.
Preferably, the metadata is stored in a journal (or ‘list’ or ‘log’) on a separate storage device, to avoid the use of the journal affecting the performance of the replicated storage device.
Preferably, the storage device and the replica are stored on physical disk devices. The storage device and the replica may be stored on random access block-structured storage devices.
Preferably, the metadata comprises a Logical Block Address. The Logical Block Address may specify the first address in the replica where an update is to be copied to.
Preferably, the metadata comprises a Block Count. The Block Count may specify how many data blocks the update is to occupy in the replica.
Preferably, the metadata is sorted prior to updating the replica. Preferably, the metadata is sorted by the Logical Block Address. The process of updating the replica may be made more efficient as a result of pre-sorting the metadata. The efficiency may be improved because less mechanical movement may be required of the storage device during the update process, thus taking less time to complete.
Preferably, the metadata is merged prior to updating the replica. Preferably, the merging process is performed in relation to the Logical Block Address. The process of updating the replica may be made more efficient as a result of merging the metadata. The efficiency may be improved because less mechanical movement may be required of the storage device during the update process, thus taking less time to complete.
Preferably, the snapshot contents (i.e. the blocks copied from the original volume) may be deleted after the replica has been updated. Additionally or alternatively, the stored metadata relating to the updates in the snapshot may be deleted after the replica has been updated.
In accordance with a second aspect of the present invention there is provided a computer-implemented system for maintaining a replica of the contents of a storage device, the system comprising:
    • a plurality of storage means for storing:
      • a data volume which is the contents of the storage device;
      • a snapshot comprising at least one update, the update comprising a copy of at least one block of data in the data volume;
      • metadata relating to the at least one update stored in the snapshot;
      • a replica of the data volume; and
    • software configured to periodically update the replica by copying the contents of the snapshot into the replica in accordance with the stored metadata.
The computer-implemented system may be configured to implement the method of claim 1.
The data volume may be the contents of a single logical or physical storage device. The computer-implemented system may comprise software configured to sort and/or merge the metadata prior to updating the replica so as to enhance or preserve the efficiency of the updating of the replica.
These and other aspects of the present invention will be apparent from and elucidated with reference to the embodiment described herein.
An embodiment of the present invention will now be described, by way of example only, and with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a conceptual view of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Turning to FIG. 1, a data volume is stored on a local storage device and a replica of that data volume is stored on a physically remote device. The local and remote storage devices are random-access block storage devices. A block device, such as a hard drive, is one which reads and writes data in blocks of a predetermined size. Each block is identified by a unique address ranging sequentially from 0 to N?1, where N is the number of blocks on the disk. A read/write head is positioned on the end of an arm provided just above the surface of the disk, the arm being able to move in and out over the surface of the disk as it rotates underneath the head.
Typically, a hard drive will consist of a stack of hard disks with arms (and their respective read/write heads) provided between each disk. If a block of data is to be accessed (read from or written to the disk), the head must be positioned over the relevant block. If the block is some distance away on the disk from the current location of the head, a delay will ensue because the head will need to travel towards or away from the centre of the disk to the correct location (seek time) and the disk will need to rotate to bring the required portion of the surface area directly under the head (rotational delay).
When an application running on the server wishes to write to a block or group of blocks within the data volume (i.e. the data set is about to be changed) a copy of the current contents of those blocks is copied to a data store (the snapshot). The snapshot is stored on another (remote) storage device relative to the data volume. This is in accordance with the copy-on-write approach.
Crucially, however, a journal (or ‘list’ or ‘log’) is also provided. When the data is copied from the data volume into the snapshot, metadata relating to that copy is inserted into the metadata journal.
The metadata comprises two numeric values as follows:
    • 1. The Logical Block Address: this specifies the first block address within the replica where the copy is to be copied to from the snapshot when the replica next gets updated;
    • 2. Block Count: this specifies how many blocks of data are to be changed within the replica as a result of copying this particular update into the replica.
For example, suppose that an application wishes to write to block addresses 6, 7, 8 and 9 within the data volume. Thus, the contents of these blocks is about to be overwritten and so a copy is made of these contents and placed into the snapshot. The numbers 6 and 4 are inserted into the metadata journal to indicate that, when the replica is eventually updated at the end of the present time period, those contents are to be copied into the replica starting at block address 6 and will update 4 blocks (i.e. blocks 6, 7, 8 and 9). Once the snapshot and the journal have been updated, the write operation can be performed on the data volume, thus changing the data at those blocks.
Another way of expressing this is to say that, for example, the metadata 6, 4 indicates that a particular update in the snapshot will cause 4 blocks of data to be written to in the replica, starting at block 6.
As more and more write operations are performed over time, the snapshot grows. The metadata journal also grows because each update inserted into the snapshot has metadata associated with it.
After a period of time, the replica will be refreshed or updated to reflect the changes which have occurred to the data set since the replica was last updated. The contents of the snapshot are then inserted into the replica at the block addresses specified by the metadata in the journal.
Thus, the general approach of the invention might be expressed as:
    • i) storing metadata describing all the changes which occur to a storage device between periodic updates; and
    • ii) at the time a periodic update occurs taking an consistent snapshot of the storage device; and
    • iii) using the stored metadata to copy the changes to the storage device from the snapshot to the replica, after which the snapshot may be deleted.
In order to improve efficiency, the metadata can be processed prior to updating the replica. This may involve ordering and/or merging the metadata.
For example, suppose that the metadata journal contains the following pairs of values for three updates stored in the snapshot as follows:
10, 10
4, 6
20, 2.
This can be expressed as meaning that, when the replica is updated, blocks 10 to 19, 4 to 9, and 20 to 21 will be changed. By merging these ranges, it becomes apparent that blocks 4 to 21 will be updated in the replica. This improves efficiency because adjacent blocks can be written to in order, requiring less movement of the arm and read/write heads (i.e. seek time) and less time waiting for the disk to rotate such that the desired portion of the disk surface is under the head (rotational delay). Seek time and rotational delay can greatly degrade performance and so merging the metadata items prior to writing to the replica provides a means of reducing the amount of mechanical movement required by the storage device, thus improving efficiency and speed in respect of the time required to perform the replica update.
Similarly, the metadata items could be ordered. Suppose that the metadata journal contains the following pairs of values for three updates stored in the snapshot as follows:
10, 10
50, 4
30, 3.
Without sorting the metadata, the first update is copied from the snapshot to the replica starting at address 10. The second update is copied into the replica starting at block 50. Thus, the arm has to move past block 30 to jump to block 50. Then, it must move back again to block 30 in order to write the third update into the replica. If, however, the metadata items are sorted (such that the updates are written starting at addresses 10, 30 and 50 in sequence) less mechanical movement is required of the device, thus improving efficiency.
Thus, the present invention provides the following advantages:
    • The metadata journal is populated with pairs of numbers; thus the size of the journal is relatively small and the overhead is slight;
    • The journal may be maintained on a separate physical storage device, and so performance of the original storage device is only degraded for a short time;
    • The snapshot does not need to be preserved for a long period of time, and so it does not grow to a size which consumes additional storage resources;
    • The snapshot can be read efficiently as metadata in the journal can be sorted or merged.
    • The replica can be written efficiently as the changed data is written in order.
There have been described and illustrated herein several embodiments of a method and system for data replication. While particular embodiments of the invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, in the claims below, any reference signs placed in parentheses shall not be construed as limiting the claims. The word “comprising” and “comprises”, and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In the present specification, “comprises” means “includes or consists of” and “comprising” means “including or consisting of”. The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. It will therefore be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as claimed.

Claims (14)

The invention claimed is:
1. A method for replicating a physical block storage device, the method comprising the steps:
i) providing a data volume stored on a physical block storage device configured to read and write data in blocks of a predetermined size;
ii) providing a replica of said data volume stored on a second storage device;
iii) providing a snapshot stored separately from the replica and data volume, wherein the snapshot contains at least one update that comprises at least one block of data copied from the data volume;
iv) providing a journal for storing metadata associated with each update contained in the snapshot, the journal being separate from the snapshot, the data volume and the replica;
v) prior to changing the contents of at least one particular block of data of the data volume, taking a copy of said at least one particular block of data of the data volume and storing said copy as an update in said snapshot, and storing in said journal metadata associated with the update stored in v), wherein the metadata includes
a Logical Block Address specifying the first address in the replica where the update stored in v) is to be copied to, and
a Block Count specifying how many data blocks the update stored in v) is to occupy in the replica;
vi) changing the contents of said at least one block of data stored on the physical block storage device; and
vii) periodically updating the replica after expiry of a predefined period of time by copying the contents of the snapshot into the replica in accordance with metadata stored in the journal such that the update stored in v) is copied from the snapshot into the replica starting at said Logical Block Address and occupying the number of data blocks specified in said Block Count.
2. A method according to claim 1, wherein:
the replica is a copy of the contents of the physical block storage device.
3. A method according to claim 1, wherein:
the second storage device that stores the replica is separate from the physical block storage device that stores the data volume.
4. A method according to claim 3, wherein:
the second storage device is remotely located from the physical block storage device.
5. A method according to claim 1, wherein:
the journal is stored on a storage device separate from the physical block storage device.
6. A method according to claim 1, wherein:
the physical block storage device and the second storage device are random access block-structured storage devices.
7. A method according to claim 1, wherein:
the metadata is sorted prior to updating the replica to enhance or preserve the efficiency of the updating of the replica.
8. A method according to claim 1, wherein:
the metadata is merged prior to updating the replica to enhance or preserve the efficiency of the updating of the replica.
9. A method according to claim 1, wherein:
the snapshot and/or the stored metadata is deleted after the replica has been updated.
10. A system for replicating the contents of a physical block storage device, the system comprising:
a plurality of storage means for storing:
i) a data volume which is the contents of the physical block storage device, wherein the contents of the physical block storage device comprise data in blocks of a predetermined size;
ii) a replica of said data volume stored on a second storage device;
iii) a snapshot stored separately from the replica and data volume, wherein the snapshot contains at least one update that comprises at least one block of data copied from the data volume;
iv) a journal for storing metadata associated with each update contained in the snapshot, the journal being separate from the snapshot, the data volume and the replica;
v) software configured to perform first operations prior to changing the contents of at least one particular block of data of the data volume, wherein the first operations include taking a copy of said at least one particular block of data of the data volume and storing said copy as an update in said snapshot, and storing in said journal metadata associated with the update stored by the first operations, wherein the metadata includes
a Logical Block Address specifying the first address in the replica where the update stored by the first operations of v) is to be copied to, and
a Block Count specifying how many data blocks the update stored by the first operations of v) is to occupy in the replica; and
vi) software configured to periodically update the replica after expiry of a predefined period of time by copying the contents of the snapshot into the replica in accordance with metadata stored in the journal such that the update stored by the first operations of v) is copied from the snapshot into the replica in accordance with its associated metadata starting at said Logical Block Address and occupying the number of data blocks specified in said Block Count.
11. A system according to claim 10, further comprising:
software configured to sort and/or merge the metadata prior to updating the replica so as to enhance or preserve the efficiency of the updating of the replica.
12. A method according to claim 1, further comprising:
subsequent to v), deleting the snapshot.
13. A method according to claim 1, wherein:
the at least one block of data is copied to define the snapshot prior to writing the update on the physical block storage device.
14. A system according to claim 10, wherein:
the at least one block of data is copied to define the snapshot prior to writing the update on the physical block storage device.
US13/069,473 2025-08-07 2025-08-07 Method and system for data replication Active US9792941B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/069,473 US9792941B2 (en) 2025-08-07 2025-08-07 Method and system for data replication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/069,473 US9792941B2 (en) 2025-08-07 2025-08-07 Method and system for data replication

Publications (2)

Publication Number Publication Date
US20120243395A1 US20120243395A1 (en) 2025-08-07
US9792941B2 true US9792941B2 (en) 2025-08-07

Family

ID=46877277

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/069,473 Active US9792941B2 (en) 2025-08-07 2025-08-07 Method and system for data replication

Country Status (1)

Country Link
US (1) US9792941B2 (en)

Cited By (4)

* Cited by examiner, ? Cited by third party
Publication number Priority date Publication date Assignee Title
US11704035B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Unified storage on block containers
US12079162B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Snapshot management in a storage system
US12235799B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Optimizing a transfer of a file system
US12373397B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Managing directory-tree operations in file storage

Families Citing this family (9)

* Cited by examiner, ? Cited by third party
Publication number Priority date Publication date Assignee Title
US9201892B2 (en) 2025-08-07 2025-08-07 International Business Machines Corporation Fast snapshots
US8966382B1 (en) * 2025-08-07 2025-08-07 Emc Corporation Managing production and replica copies dynamically
CA2868247C (en) 2025-08-07 2025-08-07 Ji Ouyang Data sending method, data receiving method, and storage device
US10289690B1 (en) * 2025-08-07 2025-08-07 EMC IP Holding Company LLC Accessing file system replica during ongoing replication operations
US10339101B1 (en) * 2025-08-07 2025-08-07 Cohesity, Inc. Distributed write journals that support fast snapshotting for a distributed file system
US10915348B2 (en) * 2025-08-07 2025-08-07 Intel Corporation Technologies for duplicating virtual machine states
CN109117308A (en) * 2025-08-07 2025-08-07 华为技术有限公司 The method and apparatus of snapshot processing
US11630608B2 (en) * 2025-08-07 2025-08-07 Nutanix, Inc. Vblock metadata management
CN114691418B (en) * 2025-08-07 2025-08-07 阿里巴巴(中国)有限公司 Information recovery method and device for storage device, electronic device and storage medium

Citations (12)

* Cited by examiner, ? Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061456A1 (en) * 2025-08-07 2025-08-07 Yuval Ofek Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6859863B1 (en) * 2025-08-07 2025-08-07 Silicon Graphics, Inc. Method and system for managing data at an input/output interface for a multiprocessor system
US20050081099A1 (en) * 2025-08-07 2025-08-07 International Business Machines Corporation Method and apparatus for ensuring valid journaled file system metadata during a backup operation
US6959369B1 (en) * 2025-08-07 2025-08-07 International Business Machines Corporation Method, system, and program for data backup
US20070103984A1 (en) * 2025-08-07 2025-08-07 Storage Technology Corporation Clustered Hierarchical File System
US7603530B1 (en) * 2025-08-07 2025-08-07 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US7613752B2 (en) * 2025-08-07 2025-08-07 Commvault Systems, Inc. Systems and methods for using metadata to enhance data management operations
US7657578B1 (en) * 2025-08-07 2025-08-07 Symantec Operating Corporation System and method for volume replication in a storage environment employing distributed block virtualization
US7685360B1 (en) * 2025-08-07 2025-08-07 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US8271751B2 (en) * 2025-08-07 2025-08-07 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
US8935208B2 (en) * 2025-08-07 2025-08-07 Carbonite, Inc. Backup and restore system for a computer
US9020987B1 (en) * 2025-08-07 2025-08-07 Emc Corporation Managing updating of metadata of file systems

Patent Citations (12)

* Cited by examiner, ? Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061456A1 (en) * 2025-08-07 2025-08-07 Yuval Ofek Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6859863B1 (en) * 2025-08-07 2025-08-07 Silicon Graphics, Inc. Method and system for managing data at an input/output interface for a multiprocessor system
US6959369B1 (en) * 2025-08-07 2025-08-07 International Business Machines Corporation Method, system, and program for data backup
US20050081099A1 (en) * 2025-08-07 2025-08-07 International Business Machines Corporation Method and apparatus for ensuring valid journaled file system metadata during a backup operation
US20070103984A1 (en) * 2025-08-07 2025-08-07 Storage Technology Corporation Clustered Hierarchical File System
US7657578B1 (en) * 2025-08-07 2025-08-07 Symantec Operating Corporation System and method for volume replication in a storage environment employing distributed block virtualization
US7603530B1 (en) * 2025-08-07 2025-08-07 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US7685360B1 (en) * 2025-08-07 2025-08-07 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7613752B2 (en) * 2025-08-07 2025-08-07 Commvault Systems, Inc. Systems and methods for using metadata to enhance data management operations
US8935208B2 (en) * 2025-08-07 2025-08-07 Carbonite, Inc. Backup and restore system for a computer
US8271751B2 (en) * 2025-08-07 2025-08-07 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
US9020987B1 (en) * 2025-08-07 2025-08-07 Emc Corporation Managing updating of metadata of file systems

Cited By (4)

* Cited by examiner, ? Cited by third party
Publication number Priority date Publication date Assignee Title
US11704035B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Unified storage on block containers
US12079162B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Snapshot management in a storage system
US12235799B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Optimizing a transfer of a file system
US12373397B2 (en) 2025-08-07 2025-08-07 Pure Storage, Inc. Managing directory-tree operations in file storage

Also Published As

Publication number Publication date
US20120243395A1 (en) 2025-08-07

Similar Documents

Publication Publication Date Title
US9792941B2 (en) Method and system for data replication
US9372854B2 (en) Load balancing backup jobs in a virtualized storage system having a plurality of physical nodes
US9396244B2 (en) Systems and methods for managing replicated database data
US10379957B2 (en) Systems and methods for analyzing snapshots
US7194487B1 (en) System and method for recording the order of a change caused by restoring a primary volume during ongoing replication of the primary volume
US5497483A (en) Method and system for track transfer control during concurrent copy operations in a data processing storage subsystem
US7159150B2 (en) Distributed storage system capable of restoring data in case of a storage failure
US7636814B1 (en) System and method for asynchronous reads of old data blocks updated through a write-back cache
CN101566959B (en) Using volume snapshots to prevent file corruption in failed restore operations
US8214685B2 (en) Recovering from a backup copy of data in a multi-site storage system
US8219770B2 (en) Storage system and data management method
US20120117029A1 (en) Backup policies for using different storage tiers
US20060136691A1 (en) Method to perform parallel data migration in a clustered storage environment
US20030135704A1 (en) Data management appliance
US8301602B1 (en) Detection of inconsistencies in a file system
US7277997B2 (en) Data consistency for mirroring updatable source data storage
JP5037811B2 (en) Remote copy method and remote copy system
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN114201109A (en) Tracking changes to a storage volume during data transfers
US12169635B2 (en) Intent-driven storage tiers that protect and replicate assets
Berger et al. Redpaper

Legal Events

Date Code Title Description
AS Assignment 百度 中国铝业、百度、东方航空、中海油、中国电信、中国移动、中国联通、中国网通、华能国际、中国人寿、网易、中国石油、上海石化、中国石化、兖州煤业、南方航空等一批大型中国公司也都以ADR模式在美国上市。

Owner name: STORMAGIC LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FAREY, CHRISTOPHER JOHN;REEL/FRAME:026080/0088

Effective date: 20110329

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 8

尿发红什么原因 双肾泥沙样结石是什么意思 经常吃生花生有什么好处和坏处 天外有天人外有人是什么意思 检查尿常规挂什么科
呵呵什么意思 铁棍山药和普通山药有什么区别 腹泻吃什么水果 上海新华医院擅长什么 近亲结婚有什么危害
鼻梁歪的男人说明什么 5.25是什么星座 打卡什么意思 为什么会有地震 小太阳是什么牌子
体香是什么味道 985和211有什么区别 borel手表是什么牌子 小孩血压高是什么原因 吃什么补精子
DNA是什么意思啊hcv9jop2ns7r.cn 地府是什么意思hcv8jop2ns1r.cn 尼姑是什么生肖hcv8jop5ns1r.cn tcl什么牌子hcv7jop4ns5r.cn 坐月子能吃什么零食hcv8jop0ns6r.cn
相声海清是什么意思hcv9jop2ns6r.cn 前戏是什么hcv8jop1ns0r.cn 脑子萎缩是什么原因造成的hcv8jop4ns9r.cn 什么医院才是正规医院hcv7jop4ns6r.cn 非诚勿扰是什么意思hcv8jop5ns3r.cn
喝碳酸饮料有什么危害hcv9jop4ns0r.cn 女人练瑜伽有什么好处hcv7jop6ns6r.cn 羊肉和什么相克clwhiglsz.com 什么猫hcv9jop0ns6r.cn 跖疣用什么药膏能治好hcv9jop5ns1r.cn
处方药是什么意思hcv7jop9ns9r.cn 消化内科主要看什么病hcv8jop9ns8r.cn 韬光养晦下一句是什么hcv8jop2ns8r.cn 阴离子是什么hcv8jop3ns3r.cn 什么情况下血压会升高hcv8jop9ns4r.cn
百度