Snapshot creating method and apparatus
AssigneeHitachi, Ltd.
InventorsJunichi Hara, Takahiro Nakano, Koji Sonoda, Takayoshi Iitsuka, Yutaka Takata
Life of this patent
Estimating the term…
Abstract
In the storage-based snapshot creation, a block-selection specifying unit provided on a NAS processing unit specifies a block, which becomes necessary for the generation of snapshot data, to a specified-block analyzing unit within a disk apparatus. Moreover, a disk controller generates the snapshot data on the block specified as the snapshot target, while making an inquiry to the specified-block analyzing unit. This makes it possible to create the snapshot in a storage-capacity reduced manner, and to specify the snapshot creation in a partition, file, or directory unit.
Claims8
A snapshot creating method in a storage system including a file server and a disk apparatus, said snapshot creating method comprising:
- (a) a step of determining whether a target for a write as a snapshot from a first data storage into a second data storage specified in said file server by a user is of a directory or a file;
- (b) a step of specifying a block with regard to said file or said directory;
- (c) a step of selecting a further block when there exists said further block related with said block with regard to data therebetween to add said further block to said block and deleting therefrom an in-no-use block;
- (d) a step of instructing, from said file server to said disk apparatus, said block targeted whose snapshot data should be generated,
- (e) a step of, in said disk apparatus, if there occurs an updating request for operational data in said first data storage, confirming whether or not a block to be updated-data written-in destination in an operational data storing region of said first data storage has been targeted for a write within said block,
- (e1) a step of, if said block has not been targeted, instructing a disk controller to write updated data into said operational data storing region,
- (e2) a step of, if said block has been targeted, confirming whether or not said specified block had been copied into a snapshot data storing region before,
- (e2-1) a step of, if said specified block had been copied before, instructing said disk controller to write said updated data into said operational data storing region,
- (e2-2) a step of instructing said disk controller, if said specified block had not been copied before, to copy pre-updated data into said snapshot data storing region, said pre-updated data existing in said operational data storing region,
- (e2-2-1) a step of receiving said instruction of copying said pre-updated data, and confirming whether or not said snapshot data storing region has been ensured,
- (e2-2-2) a step of, if said snapshot data storing region has not been ensured, ensuring said snapshot data storing region,
- (e2-3) a step of copying said pre-updated data into said snapshot data storing region, and generating simultaneously a block-address correspondence table if necessary, and
- (e3) a step of writing said updated data into said written-in destination block in said operational data storing region.
A storage system, comprising:
- a file server, and
- a disk apparatus,
- wherein said file server comprises:
- (a) means for determining whether a target for a write as snapshot form a first data storage into a second data storage specified in said file server by a user is a of a directory or a file,
- (b) means for specifying a block with regard to said file or said directory,
- (c) means for selecting a further block when there exists said further block related with said block with regard to data therebetween to add said further block to said block and deleting therefrom an in-no-use block, and
- means for instructing, from said file server to said disk apparatus, said block targeted whose snapshot data should be generated,
- wherein said disk apparatus comprises:
- (e) means for, in said disk apparatus, if there occurs an updating request for operational data in said first data storage, confirming whether or not a block to be updated-data written in destination in an operational data storing region of said first data storage has been targeted for a write within said block,
- (e1) means for, if said block has not been targeted, instructing a disk controller to write updated data into said operational data storing region,
- (e2) means for, if said block has been targeted, confirming whether or not said specified block had been copied into a snapshot data storing region before,
- (e2-1 means for, if said specified block had been copied before, instructing said disk controller to write said updated data into said operational data storing region,
- (e2-2) means for, if said specified block had not been copied before, instructing said disk controller to copy pre-updated data into said snapshot data storing region, said pre-updated data existing in said operational data storing region,
- (e2-2-1) means for receiving said instruction of copying said pre-updated data, and confirming whether or not said snapshot data storing region has been ensured,
- (e2-2-2) means for, if said snapshot data storing region has not been ensured, ensuring said snapshot data storing region,
- (e2-3) means for copying said pre-updated data into said snapshot data storing region, and generating simultaneously a block-address correspondence table if necessary, and
- means for writing said updated data into said written-in destination block in said operational data storing region.
A computer-readable processing program stored in a computer readable medium and executed on a computer for creating a snapshot in a disk apparatus connected to a file server, comprising:
- (a) a program for determining whether a target for a write as snapshot from a first data storage into a second data storage specified in said file server by a user is of a directory or a file,
- (b) a program for specifying a block with regard to said file or said director,
- (c) a program for selecting a further block when there exists said further block related with said block with regard to data therebetween to add said further block to said block and deleting therefrom an in-no-use block,
- (d) a program for instructing, from said file server to said disk apparatus, said block targeted whose snapshot data should be generated,
- (e) a program for, if there occurs an updating request for operational data in said first data storage, confirming whether or not a block to be updated-data written-in destination in an operational data storing region of said first data storage has been targeted for a write within said block,
- (e1) a program for, if said block has not been targeted, instructing a disk controller to write updated data into said operational data storing region,
- (e2) a program for, if said block has been targeted, confirming whether or not said specified block had been copied into a snapshot data storing region before,
- (e2-1) a program for, if said specified block had been copied before, instructing said disk controller to write said updated data into said operational data storing region,
- (e2-2) a program for, if said specified block had not been copied before, instructing said disk controller to copy pre-updated data into said snapshot data storing region, said pre-updated data existing in said operational data storing region,
- (e2-2-1) a program for receiving said instruction of copying said pre-updated data, and confirming whether or not said snapshot data storing region has been ensured,
- (e2-2-2) a program for, if said snapshot data storing region has not been ensured, ensuring said snapshot data storing region,
- (e2-3) a program for copying said pre-updated data into said snapshot data storing region, and generating simultaneously a block-address correspondence table if necessary, and
- (e3) a program for writing said updated data into said written-in destination block in said operational data storing region.
Dependencies are inferred from the claim text.