Download presentation
Presentation is loading. Please wait.
Published byDominic Lambert Modified over 8 years ago
1
An introduction to architecting in Azure What’s This Azure Thing Anyway? An introduction to architecting SQL Server in Azure IaaS
2
Agenda Azure 101 1 Architecting in Azure 2 Implementing SQL Server in Azure IaaS 3 Implementing AlwaysOn in Azure IaaS 4 Resources 5 Questions 6
3
Introduction I have been working with SQL Server since 2013. I am currently working for Oakwood Systems as the SQL Server Team Lead and a Senior SQL Engineer in the Managed Services line. Additionally I hold an MCSA in SQL 2012 and an MCP for Implementing Azure Infrastructure Solutions. Email – Padawan.DBA@gmail.com or jearly@oakwoodsys.com As my schedule allows, I try to blog at: https://padawandba.azurewebsites.net.
4
Azure 101 Azure SQL Database (PaaS) Pros You don’t have to manage the OS or the hardware You can spin up a database/instance very quickly High availability/fault tolerance built into platform Cons You don’t manage the OS or the hardware Very little control (subtitled: no) over the instance There are requirements for your database in order for it to be migrated to Azure SQL Database
5
Azure 101 Azure Virtual Machines (IaaS) Pros Complete management of the guest OS Complete management of the instance No up-front expenditure Quick deployment Cons Complete management of the guest OS No visibility into host/infrastructure related issues Recurring monthly cost No SLAs around performance
6
Azure 101 Overview of levels of virtualization/cloud integration (src: https://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/)/
7
Architecting in Azure - Storage Standard Tier A and D Series Capacities A8 – A11 compute intensive instances leverage Intel Xeon E5-2670 vs. AMD Opteron 4171 HE SizeCoresRAMLocal DiskMax Data Disks Max IOPs per Disk A01768 MBTemp 20GB1500 A111.75 GBTemp 70GB2500 A223.5 GBTemp 135GB4500 A347 GBTemp 285GB8500 A4814 GBTemp 605GB16500 A5214 GBTemp 135GB4500 A6428 GBTemp 285GB8500 A7856 GBTemp 605GB16500 A8*856 GBTemp 382GB16500 A9*16112 GBTemp 382GB16500 SizeCoresRAMLocal DiskMax Data Disks Max IOPs per Disk A10*856 GBTemp 382GB16500 A11*16112 GBTemp 382GB16500 D113.5 GBTemp (SSD) 50GB2500 D227 GBTemp (SSD) 100GB4500 D3414 GBTemp (SSD) 200GB8500 D4828 GBTemp (SSD) 400GB16500 D11214 GBTemp (SSD) 100GB4500 D12428 GBTemp (SSD) 200GB8500 D13856 GBTemp (SSD) 400GB16500 D1416112 GBTemp (SSD) 800GB32500
8
Architecting in Azure - Storage Premium Storage DS Series Capacities Cache and local SSD do not count against max VM IOPs and Throughput (they have roughly 4000 IOPS and 33 MB/sec per core for cache and local SSD IOs) SizeCoresRAMLocal DiskMax Data Disks (1023 GB) Max IOPs per Disk Max Disk ThroughputCache SizeMax VM IOPs Max VM Disk Throughput Standard_DS113.5 GBOS 1023 GB Local SSD 7GB 250043 GB3,20032 MB/sec Standard_DS227 GBOS 1023 GB Local SSD 14GB 450086 GB6,40064 MB/sec Standard_DS3414 GBOS 1023 GB Local SSD 28GB 8500172 GB12,800128 MB/sec Standard_DS4828 GBOS 1023 GB Local SSD 56GB 16500344 GB25,600256 MB/sec Standard_DS11214 GBOS 1023 GB Local SSD 28GB 450072 GB6,40064 MB/sec Standard_DS12428 GBOS 1023 GB Local SSD 56GB 8500144 GB12,800128 MB/sec Standard_DS13856 GBOS 1023 GB Local SSD 112GB 16500288 GB25,600256 MB/sec Standard_DS1416112 GBOS 1023 GB Local SSD 224GB 32500576 GB50,000512 MB/sec Disk Type Disk Size (GB) IOPs per Disk Throughput per Disk (MB/s) P10128500100 P205122300150 P3010245000200
9
Architecting in Azure - Storage Lessons Learned – What NOT to do Software RAID Under absolutely, positively no circumstances do you ever use software RAID Not use all of your data disks You only pay for the storage you actually use, so always provision out the data disk max Put anything important on the temp drive This is local storage with no redundancy and no guarantees around availability or performance This includes the TempDB on A-Series Azure VMs There are some caveats around highly available D-Series VMs TempDB should absolutely go here, BUT you need to apply permissions and/or create subfolders on startup
10
Architecting in Azure - Storage Lessons Learned – What TO do Use storage pools or striped SQL Server data files within file groups IO performance scales near 1:1 up to 4 data disks in storage pools - writes also scale better than reads IO performance scales better with striped SQL Server data files, but… Increased management overhead Loss of single disk offlines databases Can’t stripe transaction log files (meaningfully)
11
Architecting in Azure - Storage Lessons Learned – What TO do Two methods for implementing storage pools (let the holy war begin) Break up the disks by purpose (right) Put all disks in single storage pool (wrong) To make your life easy, create all storage pools before you create a WSFC Storage pools are added as cluster resources upon creation if the server is already a member of a WSFC AlwaysOn assumes non-shared storage, so this needs to be fixed if deploying an AlwaysOn Availability Group (link to detailed steps is at the end)
12
Implementing SQL Server in Azure IaaS Instance Configuration Yes, it still matters. You’ll want to tune Windows Server and your SQL Server instance(s) much like any other VM/physical server. Standard configuration modifications Windows Perform volume maintenance tasks (IFI) – public cloud means the argument around security implications is possibly more valid Lock pages in memory – be a little less aggressive with your max memory settings when enabling this Power Plan settings – high performance (I have no explanation for this, but I found a 6-8% performance gain tested at random times of day)
13
Implementing SQL Server in Azure IaaS Standard configuration modifications (cont.) SQL Server Max/min memory settings Fill factor defaults (ie. SharePoint instance) Backup compression default Optimize for ad hoc queries Cost threshold for parallelism/maxdop TempDB configuration Multiple, equal-sized data files T1118 and T1117
14
Implementing AlwaysOn in Azure IaaS SQL Server AlwaysOn Deploying AlwaysOn on premise is a pretty straightforward task due to complete control over the entire infrastructure SQL Server AlwaysOn in Azure The tricky portion of this revolves around the ownership of the IP assigned to the listener There are two ways to configure the listeners: Internal Load Balanced Endpoints External Load Balanced Endpoints
15
Implementing AlwaysOn in Azure IaaS Order of operations: Create Cloud Services, Storage Accounts and vNets Create/extend domain into Azure Create Azure VMs in appropriate cloud services/vNet subnets Join VMs to domain either at time of creation or after they are created Add Azure Data disks to Azure VMs Create storage pools, disks, and volumes Configure OS to prep for WSFC feature (ie. static IPs, disable Windows Firewall for domain network, etc.) Add WSFC feature to AG nodes
16
Implementing AlwaysOn in Azure IaaS Order of operations (cont.): Create a new cluster (save yourself some time and make sure “Add all eligible storage to the cluster” is NOT selected) Note: if you run cluster validation, storage checks will fail
17
Implementing AlwaysOn in Azure IaaS Order of operations (cont.): Add DHCP reservation for cluster VIP and change cluster from DHCP to static IP:
18
Implementing AlwaysOn in Azure IaaS Order of operations (cont.): Configure file share witness for Cluster Modify cluster settings for IaaS WSFC deployment:
19
Implementing AlwaysOn in Azure IaaS Order of operations (cont.): Add windows feature.NET 3.5 (if you’re like me, you always forget) Install SQL Server Make any/all SQL Server instance tuning modifications Enable AlwaysOn: Create AlwaysOn Availability Group
20
Implementing AlwaysOn in Azure IaaS Back to the order of operations (cont.) Finalize cluster modifications for IaaS deployment: And now for the Listener…
21
Implementing AlwaysOn in Azure IaaS External (Public) Load Balanced Endpoints If you need public access to your SQL Server via the public virtual IP Make sure you *always* apply an ACL to the endpoint for some semblance of Layer 3 security Use SSL encryption for the SNI Internal Load Balanced Endpoints If you don’t need public access to your SQL Server via the public virtual IP Internal Load Balancing requires vNet scope to be the new’ish regional scope (no affinity groups) Access is restricted to VMs in the same cloud service or vNet Depending on the need for security, it’s still not a bad idea to introduce ACL policies on traffic for layer 3 security
22
Implementing AlwaysOn in Azure IaaS Back to the order of operations (cont.) Create an ILB Add endpoints for ILB Open firewall ports for (actual port values are configurable): Probe Port: 59999 Listener Port: 1433 Stage AG listener CNO Add Client Access Point for listener Right-click IP Address resource and rename or copy name of IP resource for powershell script
23
Implementing AlwaysOn in Azure IaaS Order of operations (cont.) Register SPNs
24
Implementing AlwaysOn in Azure IaaS Back to the order of operations (cont.) Add dependency on listener access point to AG Add port to listener Configure read only routing lists if using them
25
Resources Listener creation error when you bring resource online - http://blogs.msdn.com/b/psssql/archive/2013/09/30/error-during-installation-of-an-sql-server- failover-cluster-instance.aspx http://blogs.msdn.com/b/psssql/archive/2013/09/30/error-during-installation-of-an-sql-server- failover-cluster-instance.aspx Sizes for Virtual Machines - https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-size-specs/https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-size-specs/ Internal Load Blanaced Endpoint - https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-sql-server-configure-ilb-alwayson-availability-group-listener/https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-sql-server-configure-ilb-alwayson-availability-group-listener/ External Load Balanced Endpoint - https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-sql-server-configure-public-alwayson-availability-group-listener/https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-sql-server-configure-public-alwayson-availability-group-listener/ How to fix storage pools if you accidentally created them after the WSFC was created: http://blogs.msdn.com/b/dfurman/archive/2014/04/27/using-storage-spaces-on-an-azure-vm-cluster- for-sql-server-storage.aspx http://blogs.msdn.com/b/dfurman/archive/2014/04/27/using-storage-spaces-on-an-azure-vm-cluster- for-sql-server-storage.aspx Setting static private IPs in Azure - http://windowsitpro.com/windows-azure/set-azure-vm-static-ip- addresshttp://windowsitpro.com/windows-azure/set-azure-vm-static-ip- address Arguably the most difficult resource to actually find, but great information - http://blogs.msdn.com/b/sqlcat/archive/2013/06/17/performance-guidance-for-sql-server-in- windows-azure-virtual-machines.aspx http://blogs.msdn.com/b/sqlcat/archive/2013/06/17/performance-guidance-for-sql-server-in- windows-azure-virtual-machines.aspx
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.