Patent ID: 6678809
Filing Date: 2004-01-13
Classification: G06F,Y10S

Abstract:
A method of managing block-level storage in a computerized storage unit connected to a source of access requests comprising the steps of:receiving a write access request directed to a volume of data in said computerized storage unit having a main memory that contains said volume of data and a storage device containing a copy of said volume of data, said volume of data containing data clusters of data blocks received in said write access request, and said copy of said volume of data containing copies of said data clusters, copies of directory clusters and a copy of a log of entries; locating said data clusters and said log of entries describing updates to said volume of data in said directory clusters; performing a block-level write of said data cluster in said main memory and a corresponding copy of said data cluster in said storage device; updating at least one said directory cluster in said main memory that locates said data cluster; performing a block-level write to said copied data cluster in said storage device; recording into said log of entries in said main memory a description of said block-level writes to said data cluster in said main memory and said copied data cluster in said storage device, said description identifying at least one said directory cluster updated in said main memory; writing said recorded description from said log of entries in said main memory to said copied log of entries in said storage device, said write access request being deemed completed upon writing said recorded description to said copied log of entries; making a copy of said at least one directory cluster in said main memory before updating said at least one directory; updating said copy of said at least one directory in said main memory; allocating said data cluster for said block-level write in said main memory and said copied data cluster in said storage device before performing said block-level writes to said data cluster or said copied data cluster; recording into a portion of said log a description for said allocating of said data cluster and said block-level writing to said data cluster and said copied data cluster; writing said portion of said log to said storage device, wherein said portion of said log first aforesaid is a first portion of said log, and further comprising the steps of: quiescing said volume; writing said updated at least one directory cluster to said storage device; logging into a second portion of said log a description of said writing of said updated at least one directory cluster; writing said second portion of said log to said storage device; and releasing said volume from quiescence.