Upgrading Mass Storage for Windows 2000
If you're thinking of upgrading your installation to Windows 2000, there are several things you need to keep in mind, not the least of which is the mass-storage requirements for the upgrade. This tip, excerpted from the InformIT web site, can serve as a checklist for determining your mass-storage requirements. The tip is an excerpt from Planning for Windows 2000, by Jon Boggs, Eric K. Cone, Sergio Perez, published by New Riders. Much of the information here is basic, but it's amazing how many people, even serious professionals, sometimes forget the basics.
You need to consider four factors when designing the storage system on an ideal server:
- Fault tolerance
- Storage layout
Since many CPU cycles can be wasted waiting for hard drives to fulfill requests, shaving even a single millisecond from a drive's access time can be a performance gain. Systems that rely heavily on their storage systems should look for an ideal system whose drives are as fast as possible. Short of using very large RAM drives for permanent storage, you can use several techniques for making hard drive access faster:
Number of drives. By having more drives in a system, you distribute the load between them. There's a greater chance that a needed drive will be idle when a request is made.
Caching. Satisfying a request from RAM rather than a hard drive is much faster. As a result, storage data is cached in several locations, including the hard drive itself, the controller, and the OS. Look for hard drives with large caches. Also, use controllers that allow caching on the controller. Finally, make sure that the OS has enough RAM to allocate an adequately sized file cache.
Intelligent controllers. Controllers can enhance performance by offloading disk processing from the CPU. This allows the CPU to do other work while waiting for the data to arrive. Also, controllers can reorder disk requests based on the data's location on the disk in order to reduce access times.
When you're selecting the hard drives for an optimal system, the interface to use is an important decision. Fortunately, the choice is currently straightforward. There are three major types of hard drive interfaces today: IDE, SCSI, and Fibre Channel. IDE is not suitable for any but the smallest servers. SCSI is used by the great majority of servers and offers a balance of performance and cost. The SCSI interface continues to evolve and has a number of variants. For this reason, make sure that all the server's SCSI components can interoperate with one another. Fibre Channel is just beginning to appear on servers. With its advantages over SCSI, however, it may eventually replace SCSI as the storage interface of choice on servers. At present, though, only busy servers will see a performance benefit when compared with the cost.
Fault-tolerant storage systems are a must for a server. Usually, the OS is mirrored using RAID 1, and data files are stored on stripe sets with parity using RAID 5. While the extra drives add cost to a system, the ability to run even if a drive fails is an important ability for a server. All but the smallest servers should use hardware RAID for performance and fault tolerance.
Although storage layout is not a part of the hardware, storing various files in the proper locations will have an impact on the system. By placing different file types on different drives, you can increase performance. Additional performance can be gained by using multiple disk controllers, so that there are fewer disks on each controller channel. Generally, the following types of files should all reside on separate disk systems for best performance:
- System pagefile(s)
- Operating system
- User data
- Database data files
- Database log files
It's always a good idea, but partitioning a system's data as described earlier is most important on systems where performance is heavily impacted by the storage system. An easy standard to follow for single-purpose servers is to use the first drive for the OS and pagefile and then use a second and third drive for two other data types (such as programs on one and user data on the other).