Virtual database storage for SQL Server: Friend or foe?
Database administrators have become begrudgingly familiar with virtual servers and the concept
that several virtual servers can share the same physical host server, and that these virtual
servers can easily be moved from one physical server to another. The next virtualization technology
has an even bigger impact on DBAs because it revolutionizes the one thing database servers are all
about: data storage.
Virtualized storage, like virtualized servers, is a piece of technology that sits between the
server and the storage, abstracting the middle layer so that the storage can be changed on the fly.
Virtual storage gives SAN administrators the ability to seamlessly move data from fast and
expensive RAID 10 fiber arrays down to slower, cheaper RAID 5 arrays on SATA. Just like
Premium Access
Register now for unlimited access to our premium content across our network of over 70 information Technology web sites.
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States.
Privacy
Dig Deeper
-
People who read this also read...
-
This was first published in July 2008
virtual
servers can be quickly moved back and forth from fast to slow host servers, virtualized storage
does the same thing for data.
The most advanced vendors perform this tiering at the block level. A single drive presented to
the database could be partially on RAID 10 fiber, partially on RAID 5 fiber and partially on SATA.
As data is accessed less and less frequently, it drops to slower tiers. The telltale sign is doing
a SELECT against different date ranges of the data: The most current data might perform extremely
fast, while data from several months ago performs very slowly.
Unpredictability: A DBA's foe
SQL Servers live and die by I/O speed, so surprise storage changes strike fear in the hearts of
database administrators everywhere. When DBAs respond to performance questions, they don't stop to
ask if their underlying drives have gotten faster or slower. But with virtual storage, that
question has to come up at the start of every troubleshooting call. When a shop invests in virtual
storage, it's doing it to gain the flexibility of changing arrays to higher or lower performance
drives – without planning or warning -- and the SAN team will use that power.
Even well-intentioned SAN administrators can wreak havoc on databases by changing storage. For
example, a large company's Internet filtering database may see constant, heavy write activity, but
it would not need high-performance storage since it doesn't care how long it takes to write the Web
logs. A SAN admin might see the large write volume
 |
| Using SANs for SQL Server: |
|
|
|
|
 |
 |
and think this data drive needs a faster tier of storage.
He looks around, sees a decision support database with a relatively low amount of load and decides
to swap the storage around. Upshot: The database administrator would suddenly start fielding calls
from angry executives, and the DBA probably wouldn't take the time to notice that the Internet
filtering database was suddenly much faster. DBAs have a hard enough job troubleshooting
performance problems without having to ask the storage team if any drives have been moved between
tiers.
While block-level tiering SANs lessen the chance that an overzealous administrator will manually
move data around, other risks still exist. An underestimated SAN department budget combined with
storage growth can undermine the SAN. In theory, block-level tiering will automatically push
individual blocks of data down to slower tiers of storage only when they're not accessed
frequently. However, if the SAN admin doesn't buy enough fast storage, or buys too much slow
storage, the SAN will have no choice but to push some of the blocks down to slower tiers, because
the company doesn't have enough fast storage to keep all of the frequently accessed data on the top
tier.
An unplanned application can have the same effect: A new app can come into the same block-level
tiered SAN that houses databases. If that project doesn't buy enough fast storage to match, and if
it does a lot of writes, then it can push the databases down to a slower tier, since all writes
happen on the fastest tiers.
Careful SAN management can confine specific applications to specific tiers, but this requires
great attention to detail by the SAN team. Since this type of tiering is so new, the reporting
capabilities aren't quite there yet, so until problems manifest in slow database response times,
the SAN team may not know about the problems.
Show me a shop with virtualized storage, and I'll show you a shop where the DBA can never sleep.
The DBA must constantly be on the watch, patrolling for sudden I/O bottlenecks, measuring storage
statistics night and day.
Flexibility: A DBA's friend
With dangers like that, why would anyone pay money for virtualized storage? Because if it's used
wisely, virtualized storage offers amazing flexibility.
Database administrators usually go to the SAN team long before a new project goes live and the
two groups work together to predict load requirements. But here are some reasons we can't always
predict the kind of load an application will have:
- If the app has a slow adoption rate, the SQL Server might be able to live on RAID 5 for
months.
- If the app catches on like wildfire, it might need expensive RAID 10 arrays of 15k drives right
away.
- In the worst-case scenario, the project never really catches on, and it could live on slow,
cheap SATA forever.
This type of prediction isn't easy, and shops end up overbuying or under buying storage with
disastrous consequences. After the project goes live, expensive disk drives sit unused or else
users complain about slow performance -- causing the project to run over budget.
With virtualized storage, the server can start on a relatively slow, cheap array and move up to
faster disk drives only if the application shows I/O bottlenecks. Everybody's a winner: The SAN
team wins because it doesn't waste expensive drives, and the DBA wins because users get the speed
they need. Both teams spend less time trying to guess an application's performance before it goes
live and less time planning outages to move data around between storage tiers to rectify a bad
guess. As the project's needs change, the SAN team can just migrate data without server
downtime.
Another great example is a data warehouse that retains seven years of financial history. The
recent data will get heavy read/write access and needs to be on the fastest disk possible. But as
time goes on, it needs to automatically sink down to a slower, cheaper tier of storage. With SQL Server 2005
partitioning the database administrator can automate that movement, but database partitioning
requires careful planning, testing and active management.
Block-based virtualized storage performs this task automatically. When blocks are not frequently
accessed (relative to the other blocks on the drive), they will gradually sink down to slower
tiers, eventually settling on RAID 5 SATA. This frees up fast and expensive 15k RPM drives. Since
the storage tiering is done on a block level, not a drive level, a single table's contents could be
automatically segregated between fast and moderate storage. This frees up the DBA to partition data
only in cases where SQL locking control is important -- instead of trying to learn storage
techniques.
So which is it: Friend or foe?
The key to a successful virtualized storage environment is storage performance monitoring. The
DBA must discover performance pain points before they become user complaints.
Block-level virtualized storage requires even more performance awareness. The DBA can't just
watch whole drives, but has to know what tables and what types of queries are running more slowly
than expected.
With careful monitoring and management, virtualized storage can be the DBA's best friend. But
without a careful eye, the DBA's job gets a lot harder.
ABOUT THE AUTHOR
Brent Ozar is a SQL Server DBA based in Houston with a leading global financial services
firm. Brent has a decade of broad IT experience in systems administration and project management
before moving into database administration. In his current role, he specializes in database
performance tuning, SANs and data warehousing. Brent conducts training sessions, has written
several technical articles and blogs at BrentOzar.com. He is also a member of Quest's Association of
SQL Server Experts.
Disclaimer:
Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.
Join the conversationComment
Share
Comments
Results
Contribute to the conversation