| 3. 1. 4 MetaFrame XP Data Store Design Background Before installing MetaFrame XP, you must decide which database to use for the data store. Microsoft Access The Microsoft Access is a lightweight database that is included with Windows server operating systems. It is most appropriate for smaller server farms. However, mid-sized server farms of more than 50 servers often perform just as well with a Microsoft Access database as with a SQL Server. When using Microsoft Access, the database is stored on the first MetaFrame XP server in the farm, and is created as part of the MetaFrame XP installation process. Microsoft Access is best used for centralized farms and supports only indirect mode for all servers other than the host. It therefore has slower performance than a direct mode data store on large farms. Database replication is not supported with Microsoft Access. Microsoft SQL Desktop Edition (MSDE) The Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) is a data engine built and based on core SQL Server technology. With support for single- and dual-processor devices, MSDE 2000 is a reliable storage engine and query processor for desktop extensions of enterprise applications. The common technology base shared between SQL Server and MSDE 2000 enables developers to build applications that can scale seamlessly from portable computers to multiprocessor clusters. Designed to run in the background, supporting transactional desktop applications, MSDE 2000 does not have its own user interface (UI) or tools. Users interact with MSDE 2000 through the application in which it is embedded. Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) offers the following features described below. Multi-Instance Support - MSDE 2000 supports up to 16 database server instances on a single computer. MSDE 2000 Utilities - MSDE 2000 includes several command prompt utilities that can be used to administer instances of MSDE 2000. The most important of these is Osql.exe, which allows you to interactively enter Transact-SQL statements in a command prompt environment. You can use the Transact-SQL administration statements, such as BACKUP and RESTORE, to administer an instance of MSDE 2000. Other utilities included with MSDE 2000 are Bcp.exe, which allows you to bulk copy large amounts of data into or out of MSDE 2000 databases, and Dtsrun.exe which executes Data Transformation Services packages. The remaining utilities included with MSDE 2000 are Cnfgsvr.exe, Dcomscm.exe, Sqlmangr.exe, Sqladhlp.exe, and Svrnetcn.exe. Replication - MSDE 2000 fully supports both merge and snapshot replication both as a publisher and as a subscriber, allowing you to keep copies of the same data on multiple sites, sometimes covering hundreds of sites. MSDE 2000 also supports other forms of replication, but only in a limited capacity. MSDE 2000 can participate in transactional replication in a subscriber capacity only. Performance - MSDE 2000 is a local data engine that can be shared. It has a managed concurrency workload governor that limits up to five concurrent batch workloads for optimal performance. Commands and log entries are available to monitor instances where more than five workloads are executed concurrently, a situation that can cause slower performance even on well-tuned systems. As more batch workloads are submitted beyond the five-workload limit, the concurrency governor continues to slow down the system. These workloads are not dropped or lost; they are still processed, but in an increasingly degraded performance mode. If your solution must support more than five concurrent workloads, it is highly recommended that you migrate to SQL Server 2000 or SQL Server 2000 Enterprise Edition for optimal performance at this higher level of scalability. Maximum Database Size - MSDE 2000 supports up to 2 gigabytes (GB) per database. This limitation is per database, not per server. A single computer can support multiple MSDE 2000 instances, each with databases of up to 2 GB in capacity. Data Transformation Services - MSDE 2000 is capable of running Data Transformation Services (DTS) packages. However, it cannot design DTS packages, because it is not equipped with a DTS Designer. Remote Administration - It is possible to administer MSDE 2000 both locally and remotely. However, MSDE 2000 cannot be remotely administered in a multi-server environment where transactions occur across servers. Microsoft SQL Server Microsoft SQL Server is a true client/server database that offers robust and scalable support for multiple-server data access. It is suited for use in farms of any size. When using Microsoft SQL Server, the database is on a dedicated server running Microsoft SQL that must be set up prior to creating the server farm. Microsoft SQL servers require significant expertise to install and maintain. If you do not have expertise with these products, using them in a production environment is not recommended. It is important to note that other factors in addition to the number of servers affect the data store and overall server farm performance. Other factors that affect performance are the number and type of published applications, the maximum number and the average number of concurrent client connections and the hardware configuration of MetaFrame XP servers. After you decide which database to use for the data store, you need to decide whether the MetaFrame XP servers will access it by direct connection or indirectly through another MetaFrame XP server. Direct Access To make a direct connection to the data store, a MetaFrame XP server must have the appropriate ODBC drivers installed and configured properly. The server then connects directly to the server on which the database is running (host server). Indirect Access For indirect access, a MetaFrame XP server connects to an intermediary MetaFrame XP server. The intermediary server connects to the data store directly. Using indirect connectivity with an SQL database eliminates the need to install and configure the ODBC drivers on every MetaFrame XP server. If you are using a SQL database for the data store, you can use a combination of direct and indirect access methods for the servers in the farm. Indirect access is not recommended for mission-critical server farms because the intermediary server is a single point of failure. By default, indirect access uses TCP port 2512 for communication between the MetaFrame XP servers. If the MetaFrame XP servers are in different subnets, ensure this port is not blocked by any firewalls. If this port number is not convenient, it can be changed. Replicated Database Having a single data store is recommended where appropriate but in some situations, a replicated data store can improve farm performance. Below are some of the concerns and situations that arise from using replicated database technology. High latency links without the use of replicated databases can create situations where the data store is locked for an extended period when performing maintenance from remote sites. This means that the IMA service can time out (but starts after an extended period of time) and some normal operations can fail when performed from the remote site. In a high-latency situation, data store writes take longer to complete and for a period of time, block all additional writes from local or remote sites. In a high-latency situation, data store reads will probably not adversely affect local connections, but the remote site will experience slower performance. Use of replicated databases to speed performance can be justified in some scenarios. The MetaFrame XP farm servers perform many more reads from the data store than writes to the data store. Most reads occur during startup, when each server populates its local host cache. In a LAN environment, using replicated databases can speed the startup time of the IMA service and improve the responsiveness of the servers in large farms. In a WAN environment, the configuration of the data store is important. Because MetaFrame XP is read-intensive, place replicas of the data store at sites where a considerable number of servers reside. This practice minimizes reads across the WAN link. Limit the use of replicated databases to situations where the remote site has enough MetaFrame XP servers to justify the cost of placing a replicated copy of the database at the site. Database replication consumes bandwidth. The database server software configuration - not MetaFrame XP - controls the frequency of database updates. Distributed Databases MetaFrame XP supports distributed databases. Distributed databases are useful when the data store begins to bottleneck due to too many read requests. To distribute the load of reads, a distributed database can be used. Microsoft SQL Server uses replication to create the distributed database environment. MetaFrame XP needs to be assured of data coherency across multiple databases. Because of this requirement, a two-phase commit algorithm must be used for writes to the database. Requirements DABCC.COM would like to keep with the goal of achieving a highly availability solution for the MetaFrame XP data store, designed with growth in mind. Recommendation It is recommended for DABCC.COM to implement Microsoft SQL 2000 with Service Pack 2 database server as the Independent Management Architecture (IMA) data store. This will allow DABCC.COM to achieve the vision of the project while providing an enterprise class database server to accommodate for growth, replication, and high availability. DABCC.COM should implement Microsoft SQL 2000 with Service Pack 2 server in a distributed database model. This will allow DABCC.COM the ability to prevent a single point of failure along with distributing the load of reads and writes on the data store. Additionally, DABCC.COM should implement a replicated database to a zone if the number of Citrix MetaFrame XP servers grows to greater than five in a given zone and or end-user performance perception drops. This will allow DABCC.COM to deliver the best performance to end-users along with reducing IMA traffic over WAN links. |