Searching...
Filters
SmallMediumLarge
Home Print Show Topic URL Previous Next

About creating a tuned file system for a specific workload

Veritas Access Administrator's Guide

Veritas Access provides an easy way to create a well-tuned file system for a given type of workload.

You can use the newly created file system for the following common client applications:

  • Virtual machine workloads

  • Media server workloads

    Streaming media represents a new wave of rich Internet content. Recent advancements in video creation, compression, caching, streaming, and other content delivery technology have brought audio and video together to the Internet as rich media. You can use Veritas Access to store your rich media, videos, movies, audio, music, and picture files.

See the Storage> fs man page for more information.

                  Storage> fs create pretuned media_fs 100g pool2 workload=mediaserver layout=striped 8
               

The workload=mediaserver option creates a file system called media_fs that is 100g in size in pool2 striped across eight disks.

You can select only one workload for a specified file system. You specify the workload when you create the file system, and you cannot change the workload after you have created the file system.

Virtual machine workloads

A virtual machine disk file, also known as a VMDK file, is a file held in the Veritas Access file system that represents a virtual disk for a virtual machine. A VMDK file is the same size as the virtual disk, so VMDK file sizes are typically very large. As writes are performed to the virtual disk within the virtual machine, the VMDK file is populated with extents in the Veritas Access file system. Because the VMDK files are large, they can become heavily fragmented, which gradually impedes performance when reading and writing to the virtual disk. If you create a file system specific to a virtual machine workload, Veritas Access internally tunes the file system to allocate a fixed extent size of 1MB for VMDK files. The 1MB block size significantly reduces both file system and VMDK file fragmentation while improving the virtual machine workload performance.

Media server workloads and tunable for setting write_throttle

Media server workloads involve heavy sequential reads and writes. Striping across multiple disks yields better I/O latency.

See Best practices for creating file systems

For media server workloads, Veritas Access provides a tunable that can help restrict the amount of write I/O throughput. The tunable helps prevent the streaming of information (sequential reads) from being affected by other processes performing write I/O on the same NAS server. An example use case is as follows. You want to stream a movie, this is reading a file (sequential reads). You do not want the movie experience to pause due to buffering. Another user might be uploading new content to the same file system (the upload is writing data to a different file). The uploading (writing) can cause the streaming (reading) to pause due to buffering. Veritas Access throttles the writing processes so that they do not consume too much of the system memory.

Each file system must tune the value write_thottle independently of other file systems. The default value is 0, which implies there is no write_throttle. The throttle is per file, so when writing to multiple files at the same time, the write_thottle threshold applies to each file independently.

Setting a non-zero value for a file system prevents the number of dirty memory pages that are associated with the file from increasing beyond the threshold. If you set a write_thottle value of 256, then writes to a file pause to flush the file to disk once 256 dirty memory pages have built up for the file. After the number of dirty pages for a file reaches the write_throttle threshold, further dirtying of pages is paused, and the file system starts flushing the file's pages to disk, even if free memory is available. Each memory page is 4KB of file data, so 256 pages is 1MB of file data. Setting a value for write_thottle means a writing thread pauses upon reaching the threshold (on the NAS server) while the file's dirty pages are flushed to disk, before resuming further writes to that file. Once flushed, the dirty pages become clean pages, which means the memory (the pages) can then be reused for perhaps pre-fetching data from disk for streaming reads. Setting a value for write_throttle helps prevent write I/O from consuming too much of the system memory.

Setting write_throttle requires some experimentation, which is why Veritas Access does not set a non-zero value by default. The valid range for write_throttle is 0 to 2048 pages. A good starting value for experimentation is 256.