Posts

Understanding SQL Server IO Size

This blog post shows you how NTFS stores data, what the NTFS Allocation Unit means, and how SQL Server performs IOs of variable size.

How NTFS Stores Data on Disk

A Master File Table (MFT) is the data structure that describes files and directories on NTFS. In Figure 1, you can see an MTF record has several sections describing the metadata about the file and pointers to blocks that make up the file. A block, also referred to as a cluster in Windows, is an abstraction over one or more physical structures (sectors or pages depending on the media) presented by the underlying disk. A block/cluster is also the atomic allocation unit from a file system and has a configurable size. On NTFS, this is referred to as the NTFS Allocation Unit Size and is a configurable attribute of the file system. By default, it is 4KB and can be as large as 2MB. Since a block is a unit of allocation, if a file is between 1 byte and the file system’s allocation unit size, it will take up exactly one block/cluster on the file system. As the file grows, more blocks/clusters are allocated to represent the file. The MFT data structure tracks which blocks make up a file. The block allocator of the file system will try to ensure blocks are physically adjacent on the disk and groups them together in runs.

Configure SQL Server on Linux for Active Directory Authentication

In this post, we’re going to walk through configuring Active Directory authentication for SQL Server on Linux. We will start by joining the Linux server to the domain, configuring SQL Server on Linux to communicate to the domain, and then use adutil to create our AD users and set up Kerberos for SQL Server login authentication.

Before getting started

First, let’s get some environment requirements set. We’ll need an Active Directory domain, a Linux host to install SQL Server on, some DNS records for that host, and the DNS client on that host configured for our environment. Here are the settings I used in this walk-through.

Updated Pluralsight Course – Configuring and Managing Kubernetes Networking, Services, and Ingress

My updated course “Configuring and Managing Kubernetes Networking, Services, and Ingress” is now available on Pluralsight here! If you want to learn about the course, check out the trailer here, or if you’re going to dive right in, check it out here!

It’s time to dig deeper into Kubernetes networking! You will learn Kubernetes cluster networking fundamentals and configuring and accessing applications in a Kubernetes Cluster with Services and Ingress.

SQL Server on Physical Machine Best Practices

The intent of this post is a quick reference guide based on the recommendations made on Pure Storage Support page in the Microsoft Platform Guide. The target audience for this blog post is for SQL Server DBAs introducing them to the most impactful configurations and settings for running SQL Server on physical machines on Pure Storage.

Physical Host Configuration

Check with your hardware vendor to see if they publish a guide for SQL Server-specific configurations for their server platforms. Here are my thoughts on general guidance around CPU configuration and power management.

Measuring SQL Server File Latency

This post is a reference post for retrieving IO statistics for data and log files in SQL Server. We’ll look at where we can find IO statistics in SQL Server, query it to produce meaningful metrics, and discuss some key points when interpreting this data.

The Source DMF

The primary source for file latency data is the dynamic management function sys.dm_io_virtual_file_stats. The data in this DMF is per file. The query below joins with sys.master_files.

Best Practices for SQL Server on VMware - Distilled

The intent of this post is a quick reference guide based on the recommendation made in “Architecting Microsoft SQL Server on VMware vSphere” April 2019 version. The target audience for this blog post is for SQL Server DBAs introducing them to the most impactful configurations and settings for running SQL Server in VMware.

For the explanations for each of these settings and how to configure the base VMware infrastructure, please read the “Architecting Microsoft SQL Server on VMware vSphere” guide and consult with your VMware administrators and experts.

Setting Permissions on Files Inside a Container for SQL Server

This post will walk you through setting file permissions on database files copied into a container. The SQL Server process sqlservr running in containers runs as the non-privileged user mssql. The appropriate permissions on files are needed, so the SQL Server process has the proper access to any database files, log files, and backup files.

Start up a container

First up, let’s start up a container. Here’s we’re starting up SQL Server 2019 CU11 and attaching a Docker data volume for our persistent data.

My Desktop Setup - Updated

Every once in a while when I’m recording a Pluralsight course, I’ll take a photo of my desk to let people see the behind the scenes of the process. Well, my friend Steve Jones (@way0utwest) encouraged me to write a desk setup post…so here we go!

My Desk

Desk

Autonomous SmartDesk 2 - Home Office

Most standup desks come at a much higher price point, and this one lands somewhere between $379-$500 depending on the features. While it’s pretty minimalist, it gets the job done. I have several presets for various heights depending on the current task I’m performing. One tip for those who record audio, I always stand when recording. It helps me with enunciation and also controls the tone of my voice better. A standing desk is a must if you’re going to be recording production quality audio. I think there are some health benefits too to standing desks. :)

Pure Storage Flasharray SQL Server Snapshot Torture...You Kinda Asked for This

By Argenis Fernandez

This post is archived here. Pleae reach out to me, Anthony Nocentino if you have any questions.

I gotta admit, some of you are really hard to convince. I’ve been saying for years that given a large enough database size (or a really small RTO storage based snapshots should be Plan A for recovering the database in the event of a disaster. Yes, you will have a Plan B, likely native backups. And Plan C. Maybe you’ll run out of letters because you’re so paranoid.

Updated Pluralsight Course – Managing Kubernetes Controllers and Deployments

My updated course “Managing Kubernetes Controllers and Deployments” is now available on Pluralsight here! If you want to learn about the course, check out the trailer here or if you want to dive right in check it out here

Learn how to deploy and maintain applications using Kubernetes Controllers. In this course you’ll learn how to select a Controller for your workload, deploy it, and maintain your container-based applications in your Kubernetes cluster.