Managing Data Replication
The key to Scalable Shared Data Base is role separation. Reporting tasks are moved from the primary processing node to scaling reporting nodes. This is accomplished by means of data distribution. The fully processed cube is copied from the Factor to the reporting nodes. I have used several techniques to accomplish this task, from good old xcopy to my favorite – SAN based replication.
I will fully admit bias in this area, I work for EMC Symmetrix engineering and I get to work with VMAX arrays every day. Our in array replication technology is called EMC TimeFinder (http://www.emc.com/products/detail/software/timefinder.htm). TimeFinder facilitates snapshots and clones. Both technologies create a storage based point in time data copy. The storage (often called a block based copy) copy is accomplished inside the SAN array, with little or no impact to the host. The block copy has two modes; snap and clone.
A snapshot uses a save area to hold changed data. When the first Snapshot is taken the array begins copying each changed data block to the save area. The new data is then written to the source volume. The snapshot can be mounted to any SAN connected host. The SAN array will send data to the snapshot as it appeared at the time of the snap.
The snap draws data from both the save area and the original source volume. This double (or more depending on the number of snapshots in use at one time) use of the source disks can negatively impact performance. Since the entire point of scalable shared database is to separate processing steps and isolate performance, it is desirable to separate and isolate storage performance.
TimeFinder clones fit this role nicely. Clones are full data copies and therefore operations performed against the source volume will not affect the full-volume clone copies.
TimeFinder clones have several copy options, I will not go into all of the different options here, and rather, I recommend the pre-copy option for use with scalable shared data base. A pre-copy replicates all changes to the clone copy, and then fractures the copy. While the copy is ongoing the reporting hosts will lose access to the volume. The alternative is faster access, with the copy operation taking longer and impacting both the source and the clone copies.
This brings up a useful feature of clones, which is the ability to have more than one clone volume attached to a single source volume. The clone copies can be synced at different times. If you need to have less down time, you can attach half of the reporting servers to one clone, and the other half to a second clone. Simply alternate client availability to the servers connected to the clone volume that is being updated (this also works with snaps – one clone can be presented to multiple servers via snapshots).
Microsoft has two technologies that ensure data consistency in both snapshots and clones; VSS and VDI. VSS or Volume Shadow Service <check this> is a Windows service that guarantees file consistency. When used with SQL server, VSS calls SQL VDI. VDI is a legacy service contained within SQL Server that was first designed for tape backups. Both VSS and VDI communicate with a third party provider, in this case EMC Solutions Enabler (SE).
The provider coordinates the hardware operations carried out in the array, and the software operations in Windows and the application. The EMC Providers all depend on the Solutions Enabler application programing interface for full operation.
NOTE: SQL Server Analysis Services writes directly to the NTFS file system and therefore uses the NTFS portion of VSS. For the purposes of scalable shared data base I recommend detaching the cube on the factory nodes to guarantee a consistent split (as there is not a mechanism to ensure the data cashed in cube memory is flushed to NTFS, VSS will only flush NTFS data).
SE is a series of services, applications, and API's provided by EMC for the purpose of administering storage. SE coordinates the freeze and thaw actions of VSS/VDI and the corresponding clone split of TimeFinder in the array. Without coordinating the clone and snap split with the server memory flushing it would not be possible to guarantee consistent data on the clone. Mounting and inconsistent clone would at best result in the DB entering recovery mode, and at worst having an unusable data base.
SE controls the Symmetrix array through executable commands. In the case of cloning the following commands are used:
- Symdg.exe – Command used to create a control group for the SAN source and clone devices.
- Symld.exe – Command used to add the devices to the control group.
- Symclone.exe – Used to manipulate the clones, including initially synchronization,
- Symntctl.exe – Allows Windows to manipulate EMC Disks.
Rather than going through an exhaustive overview of the setup and operation of clone volume in scalable shared data base I have co-authored a white paper that overviews an environment in use at Microsoft adCenter called: "Real practices: Performance scaling Microsoft SQL Server 2008 Analysis Services at Microsoft adCenter" http://www.emc.com/collateral/hardware/white-papers/h8129-performance-scaling-sql-wp.pdf. Pages 13 through 19 detail setup and operation of clones used as part of an Analysis Services Scalable Shared Data Base environment.
For EMC Symmetrix customer's; detailed information about Solutions Enabler TimeFinder can be found by searching https://powerlink.emc.com for "EMC® Solutions Enabler Symmetrix® TimeFinder® Family CLI"
If you are going to implement Scalable Shared Data Base on SQL Server (as opposed to Analysis services), EMC offers the TimeFinder/SQL Integration Module. Search https://powerlink.emc.com for "TimeFinder/SQL Integration Module"
Recent Comments