CINXE.COM
Hybrid file services - Azure Architecture Center | Microsoft Learn
<!DOCTYPE html><html class="hasSidebar hasPageActions hasBreadcrumb has-default-focus theme-light" lang="en-us" dir="ltr" data-authenticated="false" data-auth-status-determined="false" data-target="docs" x-ms-format-detection="none"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta property="og:title" content="Hybrid file services - Azure Architecture Center" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://learn.microsoft.com/en-us/azure/architecture/hybrid/hybrid-file-services" /><meta property="og:description" content="Use Azure File Sync and Azure Files to extend file services hosting capabilities across cloud and on-premises file share resources." /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" /> <meta property="og:image:alt" content="Microsoft Learn" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@MicrosoftLearn" /> <meta name="color-scheme" content="light dark"><meta name="author" content="martinekuan" /> <meta name="breadcrumb_path" content="/azure/architecture/bread/toc.json" /> <meta name="depot_name" content="MSDN.azure-architecture-center-pr2" /> <meta name="description" content="Use Azure File Sync and Azure Files to extend file services hosting capabilities across cloud and on-premises file share resources." /> <meta name="document_id" content="a0c41223-d1f5-636c-3902-8d333543dd0e" /> <meta name="document_version_independent_id" content="3708ea4f-c677-a576-d088-7b096c24e415" /> <meta name="feedback_help_link_type" content="" /> <meta name="feedback_help_link_url" content="" /> <meta name="feedback_product_url" content="" /> <meta name="feedback_system" content="Standard" /> <meta name="git_commit_id" content="a55b33e78f810f5121daf4e771d51941dd80a449" /> <meta name="gitcommit" content="https://github.com/MicrosoftDocs/architecture-center-pr/blob/a55b33e78f810f5121daf4e771d51941dd80a449/docs/hybrid/hybrid-file-services.yml" /> <meta name="locale" content="en-us" /> <meta name="ms.author" content="pnp" /> <meta name="ms.category" content="hybrid" /> <meta name="ms.category" content="storage" /> <meta name="ms.custom" content="fcp" /> <meta name="ms.custom" content="reference-architecture" /> <meta name="ms.custom" content="e2e-hybrid" /> <meta name="ms.date" content="11/21/2022" /> <meta name="ms.service" content="azure-architecture-center" /> <meta name="ms.subservice" content="reference-architecture" /> <meta name="ms.topic" content="reference-architecture" /> <meta name="original_content_git_url" content="https://github.com/MicrosoftDocs/architecture-center-pr/blob/live/docs/hybrid/hybrid-file-services.yml" /> <meta name="page_type" content="architecture" /> <meta name="schema" content="Architecture" /> <meta name="site_name" content="Docs" /> <meta name="toc_rel" content="../toc.json" /> <meta name="uhfHeaderId" content="azure" /> <meta name="updated_at" content="2024-09-12 04:46 PM" /> <meta name="persistent_id" content="5f7d4326-baa9-f039-b3ca-0bcbf4b10071" /> <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/01a89bec-e73f-4ce0-a00a-ae34ad62e5fe" data-source="generated" /> <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/50038ab9-5431-4515-9dfc-c24291ef4fce" data-source="generated" /> <meta name="scope" content="Azure, Azure Architecture Center" /><meta name="github_feedback_content_git_url" content="https://github.com/microsoftdocs/architecture-center/blob/main/docs/hybrid/hybrid-file-services.yml" /><link href="https://learn.microsoft.com/en-us/azure/architecture/hybrid/hybrid-file-services" rel="canonical"><title>Hybrid file services - Azure Architecture Center | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.028726178/styles/site-ltr.css"> <script id="msdocs-script"> var msDocs = {environment: { supportLevel: 'production', accessLevel: 'online', reviewFeatures: false, systemContent: true, azurePortalHostname: 'portal.azure.com', legacyHosting: false, siteName: 'learn', },data: { timeOrigin: Date.now(), contentLocale: 'en-us', contentDir: 'ltr', userLocale: 'en-us', userDir: 'ltr', pageTemplate: 'Architecture', brand: 'azure', context: {}, hasBinaryRating: true, feedbackHelpLinkType:'', feedbackHelpLinkUrl:'', standardFeedback: true, showFeedbackReport: false, enableTutorialFeedback: false, feedbackSystem: 'Standard', feedbackGitHubRepo: 'MicrosoftDocs/architecture-center', feedbackProductUrl: '',extendBreadcrumb: false,isEditDisplayable: true, hideViewSource: false, hasPageActions: true, hasPrintButton: true, hasBookmark: true, hasShare: true, isPermissioned: false, isPrivateUnauthorized: false,hasRecommendations: false,contributors: [{ name: "craigcaseyMSFT", url: "https://github.com/craigcaseyMSFT" },{ name: "v-albemi", url: "https://github.com/v-albemi" },{ name: "jameshkramer", url: "https://github.com/jameshkramer" },{ name: "alexbuckgit", url: "https://github.com/alexbuckgit" },{ name: "john-par", url: "https://github.com/john-par" },{ name: "neilpeterson", url: "https://github.com/neilpeterson" }],}, functions:{} }; </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.028726178/global/deprecation.js"></script><script src="/static/assets/0.4.028726178/scripts/en-us/index-docs.js"></script></head> <body lang="en-us" dir="ltr"> <div class="header-holder has-default-focus"> <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div> <div id="unsupported-browser" style=" background-color: white; color: black; padding: 16px; border-bottom: 1px solid grey;" hidden > <div style="max-width: 800px; margin: 0 auto;"> <p style="font-size: 24px">This browser is no longer supported.</p> <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p> <div style="margin-top: 12px;"> <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 " style=" background-color: #0078d4; border: 1px solid #0078d4; color: white; padding: 6px 12px; border-radius: 2px; display: inline-block; ">Download Microsoft Edge</a> <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge" style=" background-color: white; padding: 6px 12px; border: 1px solid #505050; color: #171717; border-radius: 2px; display: inline-block; ">More info about Internet Explorer and Microsoft Edge</a> </div> </div> </div> <!-- liquid-tag banners global --> <!-- site header --> <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization"> <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div> <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div> <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div> </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header"> <div class="content-header-controls margin-xxs margin-inline-sm-tablet"> <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button> <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span> <span class="contents-expand-title">Table of contents</span> </button> <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel"> <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span> <span>Exit focus mode</span> </button> </div> </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus"> <!-- liquid-tag banners sectional --> </div> </div> <div class="mainContainer uhf-container has-default-focus" data-bi-name="body"> <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop"> <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav> </div><!-- .primary-holder --> <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop"> <!--div.columns --> <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop"> <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header --> <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print"> <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs"> <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs"> <span class="icon"> <span class="docon docon-more"></span> </span> </summary> <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none"> </div> </details> <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><a id="lang-link-tablet" class="button button-primary button-clear button-sm display-none display-inline-flex-tablet" title="Read in English" data-bi-name="language-toggle" data-read-in-link hidden> <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon> <span class="docon docon-locale-globe"></span> </span> <span class="is-visually-hidden" data-read-in-link-text>Read in English</span> </a><button type="button" class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet" data-list-type="collection" data-bi-name="collection" title="Add to collection"> <span class="icon margin-none" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="collection-status is-visually-hidden">Save</span> </button><a data-contenteditbtn class="button button-clear button-sm text-decoration-none button-primary display-none display-inline-flex-tablet" aria-label="Edit" title="Edit This Document" data-bi-name="edit" href="https://github.com/microsoftdocs/architecture-center/blob/main/docs/hybrid/hybrid-file-services.yml" data-original_content_git_url="https://github.com/MicrosoftDocs/architecture-center-pr/blob/live/docs/hybrid/hybrid-file-services.yml" data-original_content_git_url_template="{repo}/blob/{branch}/docs/hybrid/hybrid-file-services.yml" data-pr_repo="" data-pr_branch=""> <span class="icon margin-none" aria-hidden="true"> <span class="docon docon-edit-outline"></span> </span> </a> <details class="popover popover-right" id="article-header-page-actions-overflow"> <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions"> <span class="icon" aria-hidden="true"> <span class="docon docon-more-vertical"></span> </span> </summary> <div class="popover-content padding-xs"><button data-page-action-item="overflow-mobile" type="button" class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet" data-bi-name="contents-expand" data-contents-button data-popover-close> <span class="icon"> <span class="docon docon-editor-list-bullet" aria-hidden="true"></span> </span><span class="contents-expand-title">Table of contents</span></button><a id="lang-link-overflow" class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet" title="Read in English" data-bi-name="language-toggle" data-page-action-item="overflow-mobile" data-check-hidden="true" data-read-in-link hidden > <span class="icon" aria-hidden="true" data-read-in-link-icon> <span class="docon docon-locale-globe"></span> </span> <span data-read-in-link-text>Read in English</span> </a><button type="button" class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet" data-list-type="collection" data-bi-name="collection" title="Save" data-page-action-item="overflow-mobile" data-check-hidden="true" data-popover-close> <span class="icon" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="collection-status">Save</span> </button> <button type="button" class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet" data-list-type="plan" data-bi-name="plan" title="Add to Plan" data-page-action-item="overflow-mobile" data-check-hidden="true" data-popover-close hidden> <span class="icon" aria-hidden="true"> <span class="docon docon-circle-addition"></span> </span> <span class="plan-status">Add to Plan</span> </button><a data-contenteditbtn class="button button-clear button-block button-sm has-inner-focus justify-content-flex-start text-decoration-none display-none-tablet" aria-label="Edit" title="Edit This Document" data-bi-name="edit" href="https://github.com/microsoftdocs/architecture-center/blob/main/docs/hybrid/hybrid-file-services.yml" data-original_content_git_url="https://github.com/MicrosoftDocs/architecture-center-pr/blob/live/docs/hybrid/hybrid-file-services.yml" data-original_content_git_url_template="{repo}/blob/{branch}/docs/hybrid/hybrid-file-services.yml" data-pr_repo="" data-pr_branch=""> <span class="icon" aria-hidden="true"> <span class="docon docon-edit-outline"></span> </span> <span>Edit</span> </a><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div> <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" /> <h4 class="font-size-sm padding-left-xxs">Share via</h4> <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-facebook-share font-size-md color-primary"></span> </span> <span class="margin-left-xxs">Facebook</span> </a> <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-xlogo-share font-size-xxs"></span> </span> <span class="margin-left-xxs">x.com</span> </a> <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-linked-in-logo font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">LinkedIn</span> </a> <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all"> <span class="icon" aria-hidden="true"> <span class="docon docon-mail-message font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">Email</span> </a><hr /> <button class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs" title="Print" type="button" aria-label="Print" data-bi-name="print" data-page-action-item="overflow-all" data-popover-close data-print-page data-check-hidden="true"> <span class="icon" aria-hidden="true"> <span class="docon docon-print font-size-sm color-primary"></span> </span> <span class="margin-left-xxs">Print</span> </button> </div> </details> </div></div> </div> <!-- end article-header --><div> <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden> <span class="icon"> <span class="docon docon-editor-list-bullet" aria-hidden="true"></span> </span><span class="contents-expand-title">Table of contents</span></button> </div><!-- end mobile-contents button --> <div class=""><!-- <content> --><div> <h1 class="title is-1">Hybrid file services</h1> <div class="font-size-sm tags margin-block-xxs is-hidden-portrait"> <div class="tag font-size-xs"> Microsoft Entra ID </div> <div class="tag font-size-xs"> Azure ExpressRoute </div> <div class="tag font-size-xs"> Azure Files </div> <div class="tag font-size-xs"> Azure Storage Accounts </div> </div> </div> <div class="content"> <p>This reference architecture illustrates how to use Azure File Sync and Azure Files to extend file services hosting capabilities across cloud and on-premises file share resources.</p> <h2 id="architecture">Architecture</h2> <p><img src="/en-us/azure/architecture/hybrid/images/hybrid-file-services.svg" alt="An Azure hybrid file services topology diagram." data-linktype="absolute-path"></p> <p><em>Download a <a href="https://arch-center.azureedge.net/hybrid-file-services.vsdx" data-linktype="external">Visio file</a> of this architecture.</em></p> <h3 id="workflow">Workflow</h3> <p>The architecture consists of the following components:</p> <ul> <li><strong><a href="/en-us/azure/storage/common/storage-account-overview" data-linktype="absolute-path">Azure storage account</a></strong>. A storage account that's used to host file shares.</li> <li><strong><a href="/en-us/azure/storage/files/storage-files-planning" data-linktype="absolute-path">Azure Files</a></strong>. A serverless cloud file share that provides the cloud endpoint of a sync relationship by using Azure File Sync. Files in an Azure file share can be accessed directly with Server Message Block (SMB) or FileREST protocol.</li> <li><strong>Sync groups</strong>. Logical groupings of Azure file shares and servers that run Windows Server. Sync groups are deployed into Storage Sync Service, which registers servers for use with Azure File Sync and contains the sync group relationships.</li> <li><strong>Azure File Sync agent</strong>. This is installed on Windows Server machines to enable and configure sync with cloud endpoints.</li> <li><strong>Windows Servers</strong>. On-premises or cloud-based Windows Server machines that host a file share that syncs with an Azure file share.</li> <li><strong><a href="/en-us/azure/active-directory/fundamentals/active-directory-whatis" data-linktype="absolute-path">Microsoft Entra ID</a></strong>. The Microsoft Entra tenant that's used for identity synchronization across Azure and on-premises environments.</li> </ul> <h3 id="components">Components</h3> <ul> <li><a href="/en-us/azure/well-architected/service-guides/storage-accounts/reliability" data-linktype="absolute-path">Azure Storage accounts</a></li> <li><a href="/en-us/azure/well-architected/service-guides/azure-files" data-linktype="absolute-path">Azure Files</a></li> <li><a href="/en-us/entra/fundamentals/whatis" data-linktype="absolute-path">Microsoft Entra ID</a></li> </ul> <h2 id="scenario-details">Scenario details</h2> <p>Typical uses for this architecture include:</p> <ul> <li>Hosting file shares that need to be accessible from cloud and on-premises environments.</li> <li>Synchronizing data between multiple on-premises data stores with a single cloud-based source.</li> </ul> <h2 id="recommendations">Recommendations</h2> <p>The following recommendations apply for most scenarios. Follow these recommendations unless you have a requirement that overrides them.</p> <h3 id="azure-files-usage-and-deployment">Azure Files usage and deployment</h3> <p>You store your files in the cloud in serverless Azure file shares. You can use them in two ways: by directly mounting them (SMB) or by caching them on-premises by using Azure File Sync. What you need to consider as you plan for your deployment depends on which of the two ways that you choose.</p> <ul> <li>Direct mount of an Azure file share. Because Azure Files provides SMB access, you can mount Azure file shares on-premises or in the cloud using the standard SMB client available in the Windows, macOS, and Linux operating systems. Azure file shares are serverless, so deploying them for production scenarios doesn't require managing a file server or network-attached storage (NAS) device. This means you don't have to apply software patches or swap out physical disks.</li> <li>Cache Azure file share on-premises with Azure File Sync. Azure File Sync makes it possible for you to centralize your organization's file shares in Azure Files, while keeping the flexibility, performance, and compatibility of an on-premises file server. Azure File Sync transforms an on-premises (or cloud) Windows Server into a quick cache of your Azure file share.</li> </ul> <h3 id="deploy-the-storage-sync-service">Deploy the Storage Sync Service</h3> <p>Begin Azure File Sync deployment by deploying a Storage Sync Service resource into a resource group of your selected subscription. We recommend provisioning as few Storage Sync Service objects as possible. You'll create a trust relationship between your servers and this resource. A server can only be registered to one Storage Sync Service. As a result, we recommend that you deploy as many Storage Sync Services as you need to separate groups of servers. Keep in mind that servers from different Storage Sync Services can't sync with each other.</p> <h3 id="registering-windows-server-machines-with-the-azure-file-sync-agent">Registering Windows Server machines with the Azure File Sync agent</h3> <p>To enable the sync capability on Windows Server, you must install the Azure File Sync downloadable agent. The Azure File Sync agent provides two main components:</p> <ul> <li><code>FileSyncSvc.exe</code>. The background Windows service that's responsible for monitoring changes on the server endpoints and for initiating sync sessions.</li> <li><code>StorageSync.sys</code>. A file system filter that enables cloud tiering and faster disaster recovery.</li> </ul> <p>You can download the agent from the <a href="https://go.microsoft.com/fwlink/?linkid=858257" data-linktype="external">Azure File Sync Agent Download</a> page at the Microsoft Download Center.</p> <h4 id="operating-system-requirements">Operating system requirements</h4> <p>Azure File Sync is supported by the Windows Server versions that are listed in the following table.</p> <table> <thead> <tr> <th>Version</th> <th>Supported SKUs</th> <th>Supported deployment options</th> </tr> </thead> <tbody> <tr> <td>Windows Server 2022</td> <td>Azure, Datacenter, Essentials, Standard, and IoT</td> <td>Full and Core</td> </tr> <tr> <td>Windows Server 2019</td> <td>Datacenter, Standard, and IoT</td> <td>Full and Core</td> </tr> <tr> <td>Windows Server 2016</td> <td>Datacenter, Standard, and Storage Server</td> <td>Full and Core</td> </tr> <tr> <td>Windows Server 2012 R2</td> <td>Datacenter, Standard, and Storage Server</td> <td>Full and Core</td> </tr> </tbody> </table> <p>For more information, see <a href="/en-us/azure/storage/files/storage-sync-files-planning#windows-file-server-considerations" data-linktype="absolute-path">Windows file server considerations</a>.</p> <h3 id="configuring-sync-groups-and-cloud-endpoints">Configuring sync groups and cloud endpoints</h3> <p>A <em>sync group</em> defines the sync topology for a set of files. Endpoints within a sync group are kept in sync with each other. A sync group must contain one <em>cloud endpoint</em>, which represents an Azure file share, and one or more server endpoints. A <em>server endpoint</em> represents a path on a registered server. A server can have server endpoints in multiple sync groups. You can create as many sync groups as you need to appropriately describe your desired sync topology.</p> <p>A <em>cloud endpoint</em> is a pointer to an Azure file share. All server endpoints will sync with a cloud endpoint, making the cloud endpoint the hub. The storage account for the Azure file share must be located in the same region as the Storage Sync Service. The entirety of the Azure file share is synced, with one exception: a special folder, comparable to the hidden <strong>System Volume Information</strong> folder on an NT file system (NTFS) volume, is provisioned. This directory is called <strong>.SystemShareInformation</strong>, and it contains important sync metadata that doesn't sync to other endpoints.</p> <h3 id="configuring-server-endpoints">Configuring server endpoints</h3> <p>A server endpoint represents a specific location on a registered server, such as a folder on a server volume. A server endpoint must be a path on a registered server (rather than a mounted share), and must use cloud tiering. The server endpoint path must be on a non-system volume. NAS isn't supported.</p> <h3 id="azure-file-share-to-windows-file-share-relationships">Azure file share to Windows file share relationships</h3> <p>You should deploy Azure file shares one-to-one with Windows file shares wherever possible. The server endpoint object gives you a great degree of flexibility on how you set up the sync topology on the server-side of the sync relationship. To simplify management, make the path of the server endpoint match the path of the Windows file share.</p> <p>Use as few Storage Sync Services as possible. This simplifies management when you have sync groups that contain multiple server endpoints, because a Windows Server can only be registered to one Storage Sync Service at a time.</p> <p>Pay attention to I/O operations per second (IOPS) limitations on a storage account when you deploy Azure file shares. The ideal is to map file shares one-to-one with storage accounts. It isn't always possible to do that because of various limits and restrictions from your organization and from Azure. When it's not possible to have only one file share deployed in a storage account, ensure that your most active file shares aren't in the same storage account.</p> <h3 id="topology-recommendations-firewalls-edge-networks-and-proxy-connectivity">Topology recommendations: firewalls, edge networks, and proxy connectivity</h3> <p>Consider the following recommendations for solution topology.</p> <h4 id="firewall-and-traffic-filtering">Firewall and traffic filtering</h4> <p>Based on the policies of your organization or on unique regulatory requirements, you might need to restrict communication with Azure. Therefore, Azure File Sync provides several mechanisms for configuring networking. Based on your requirements, you can:</p> <ul> <li>Tunnel the sync and file upload and download traffic over your Azure ExpressRoute or Azure virtual private network (VPN).</li> <li>Make use of Azure Files and Azure networking features such as service endpoints and private endpoints.</li> <li>Configure Azure File Sync to support your proxy in your environment.</li> <li>Throttle network activity from Azure File Sync.</li> </ul> <p>To learn more about Azure File Sync and networking, see <a href="/en-us/azure/storage/files/storage-sync-files-networking-overview" data-linktype="absolute-path">Azure File Sync networking considerations</a>.</p> <h4 id="configuring-proxy-servers">Configuring proxy servers</h4> <p>Many organizations use a proxy server as an intermediary between resources inside their on-premises network and resources outside their network, such as in Azure. Proxy servers are useful for many applications, such as network isolation and security, and monitoring and logging. Azure File Sync can interoperate fully with a proxy server; however, you must manually configure the proxy endpoint settings for your environment with Azure File Sync. You do this by using the Azure File Sync server cmdlets in Azure PowerShell.</p> <p>For more information on how to configure Azure File Sync with a proxy server, see <a href="/en-us/azure/storage/files/storage-sync-files-firewall-and-proxy" data-linktype="absolute-path">Azure File Sync proxy and firewall settings</a>.</p> <h2 id="considerations">Considerations</h2> <p>These considerations implement the pillars of the Azure Well-Architected Framework, which is a set of guiding tenets that can be used to improve the quality of a workload. For more information, see <a href="/en-us/azure/well-architected/" data-linktype="absolute-path">Microsoft Azure Well-Architected Framework</a>.</p> <h3 id="reliability">Reliability</h3> <p>Reliability ensures that your application can meet the commitments you make to your customers. For more information, see <a href="/en-us/azure/architecture/framework/resiliency/overview" data-linktype="absolute-path">Overview of the reliability pillar</a>.</p> <ul> <li>You should consider the type and performance of the storage account that you use to host Azure file shares. All storage resources that are deployed into a storage account share the limits that apply to that storage account. To find out more about determining the current limits for a storage account, see <a href="/en-us/azure/storage/files/storage-files-scale-targets" data-linktype="absolute-path">Azure Files scalability and performance targets</a>.</li> <li>There are two main types of storage accounts for Azure Files deployments: <ul> <li>General purpose version 2 (GPv2) storage accounts. GPv2 storage accounts allow you to deploy Azure file shares on standard, hard disk-based (HDD-based) hardware. In addition to storing Azure file shares, GPv2 storage accounts can store other storage resources such as blob containers, queues, and tables.</li> <li>FileStorage storage accounts: FileStorage storage accounts make it possible for you to deploy Azure file shares on premium, solid-state disk-based (SSD-based) hardware. FileStorage accounts can only be used to store Azure file shares. You can't deploy other storage resources such as blob containers, queues, and tables in a FileStorage account.</li> </ul> </li> <li>You should ensure that Azure File Sync is supported in the regions where you deploy your solution. For more information, see <a href="/en-us/azure/storage/files/storage-sync-files-planning#azure-file-sync-region-availability" data-linktype="absolute-path">Azure File Sync region availability</a>.</li> <li>You should ensure that the services that are referenced in the <strong>Architecture</strong> section are supported in the region where you deploy the hybrid file services architecture.</li> <li>To protect the data in your Azure file shares against data loss or corruption, all Azure file shares store multiple copies of each file as it's written. Depending on the requirements of your workload, you can select more degrees of redundancy.</li> <li><em>Previous Versions</em> is a Windows feature that enables you to use server-side Volume Shadow Copy Service (VSS) snapshots of a volume to present restorable versions of a file to an SMB client. VSS snapshots and Previous Versions work independently of Azure File Sync. However, cloud tiering must be set to a compatible mode. Many Azure File Sync server endpoints can exist on the same volume. You have to make the following PowerShell call per volume that has even one server endpoint, where you plan to or are using cloud tiering. For more information about Previous Versions and VSS, see <a href="/en-us/azure/storage/files/storage-sync-files-deployment-guide?tabs=azure-portal#self-service-restore-through-previous-versions-and-vss-volume-shadow-copy-service" data-linktype="absolute-path">Self-service restore through Previous Versions and VSS (Volume Shadow Copy Service)</a>.</li> </ul> <h3 id="security">Security</h3> <p>Security provides assurances against deliberate attacks and the abuse of your valuable data and systems. For more information, see <a href="/en-us/azure/architecture/framework/security/overview" data-linktype="absolute-path">Overview of the security pillar</a>.</p> <ul> <li>Azure File Sync works with your standard Active Directory Domain Services (AD DS) identity without any special setup beyond setting up Azure File Sync. When you use Azure File Sync, file access typically goes through the Azure File Sync caching servers rather than through the Azure file share. Because the server endpoints are located on Windows Server machines, the only requirement for identity integration is to use domain-joined Windows file servers to register with the Storage Sync Service. Azure File Sync stores access control lists (ACLs) for the files in the Azure file share, and replicates them to all server endpoints.</li> <li>Even though changes that are made directly to the Azure file share take longer to sync to the server endpoints in the sync group, you might want to ensure that you can enforce your AD DS permissions on your file share directly in the cloud also. To do this, you must domain join your storage account to your on-premises AD DS domain, just as your Windows file servers are domain joined. To learn more about domain joining your storage account to a customer-owned AD DS instance, see <a href="/en-us/azure/storage/files/storage-files-active-directory-overview" data-linktype="absolute-path">Overview of Azure Files identity-based authentication options for SMB access</a>.</li> <li>When you use Azure File Sync, there are three different layers of encryption to consider: <ul> <li>Encryption at rest for data that's stored in Windows Server. There are two strategies for encrypting data on Windows Server that work generally with Azure File Sync: encryption beneath the file system such that the file system and all of the data written to it is encrypted, and encryption within the file format itself. These methods can be used together if desired, because their purposes differ.</li> <li>Encryption in transit between the Azure File Sync agent and Azure. Azure File Sync agent communicates with your Storage Sync Service and Azure file share by using the Azure File Sync REST protocol and the FileREST protocol, both of which always use HTTPS over port 443. Azure File Sync doesn't send unencrypted requests over HTTP.</li> <li>Encryption at rest for data that's stored in the Azure file share. All data that's stored in Azure Files is encrypted at rest using Azure storage service encryption (SSE). Storage service encryption works much like BitLocker on Windows: data is encrypted beneath the file system level. Because data is encrypted beneath the file system of the Azure file share as the data is encoded to disk, you don't need access to the underlying key on the client to read or write to the Azure file share.</li> </ul> </li> </ul> <h3 id="cost-optimization">Cost optimization</h3> <p>Cost optimization is about looking at ways to reduce unnecessary expenses and improve operational efficiencies. For more information, see <a href="/en-us/azure/architecture/framework/cost/overview" data-linktype="absolute-path">Overview of the cost optimization pillar</a>.</p> <ul> <li>Consult the <a href="/en-us/azure/architecture/framework/cost/overview" data-linktype="absolute-path">Principles of cost optimization</a> page in the Azure Well-Architected Framework for cost optimization recommendations.</li> <li>The <a href="https://azure.microsoft.com/pricing/details/storage/" data-linktype="external">Azure Storage Pricing</a> page provides detailed pricing information based on account type, storage capacity, replication, and transactions.</li> <li>The <a href="https://azure.microsoft.com/pricing/details/data-transfers/" data-linktype="external">Data Transfers Pricing Details</a> article provides detailed pricing information for data egress.</li> <li>You can use the <a href="https://azure.microsoft.com/pricing/calculator/?scenario=data-management" data-linktype="external">Azure Storage Pricing Calculator</a> to help estimate your costs.</li> </ul> <h3 id="operational-excellence">Operational Excellence</h3> <p>Operational excellence covers the operations processes that deploy an application and keep it running in production. For more information, see <a href="/en-us/azure/architecture/framework/devops/overview" data-linktype="absolute-path">Overview of the operational excellence pillar</a>.</p> <ul> <li>The Azure File Sync agent is updated on a regular basis to add new functionality and to address issues. Microsoft recommends that you configure Microsoft Update to provide updates for the Azure File Sync agent as they become available. For more information, see <a href="/en-us/azure/storage/files/storage-sync-files-planning#azure-file-sync-agent-update-policy" data-linktype="absolute-path">Azure File Sync agent update policy</a>.</li> <li>Azure Storage offers soft delete for file shares so that you can recover your data when it's mistakenly deleted by an application or by another storage account user. To learn more about soft delete, see <a href="/en-us/azure/storage/files/storage-files-enable-soft-delete?tabs=azure-portal" data-linktype="absolute-path">Enable soft delete on Azure file shares</a>.</li> <li>Cloud tiering is an optional feature of Azure File Sync that caches frequently accessed files locally on the server and tiers the others to Azure Files based on policy settings. When a file is tiered, the Azure File Sync file system filter (StorageSync.sys) replaces the file locally with a pointer to the file in Azure Files. A tiered file has both the <strong>offline</strong> attribute and the <strong>FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS</strong> attribute set in NTFS so that third-party applications can securely identify tiered files. For more information, see <a href="/en-us/azure/storage/files/storage-sync-cloud-tiering" data-linktype="absolute-path">Cloud Tiering Overview</a>.</li> </ul> <h2 id="next-steps">Next steps</h2> <ul> <li><a href="/en-us/azure/storage/file-sync/file-sync-introduction" data-linktype="absolute-path">What is Azure File Sync?</a></li> <li><a href="/en-us/azure/storage/files/understanding-billing?toc=/azure/storage/file-sync/toc.json#azure-file-sync" data-linktype="absolute-path">How is Azure File Sync billed?</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-planning" data-linktype="absolute-path">How to plan for Azure File Sync Deployment?</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-deployment-guide" data-linktype="absolute-path">How to deploy Azure File Sync?</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-networking-overview" data-linktype="absolute-path">Azure File Sync network considerations</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-cloud-tiering-overview" data-linktype="absolute-path">What is Cloud Tiering?</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-disaster-recovery-best-practices" data-linktype="absolute-path">What disaster recovery option are available in Azure File Sync?</a></li> <li><a href="/en-us/azure/storage/file-sync/file-sync-disaster-recovery-best-practices" data-linktype="absolute-path">How to backup Azure File Sync?</a></li> </ul> <h2 id="related-resources">Related resources</h2> <p>Related hybrid guidance:</p> <ul> <li><a href="/en-us/azure/architecture/hybrid/hybrid-start-here" data-linktype="absolute-path">Hybrid architecture design</a></li> <li><a href="/en-us/azure/architecture/guide/technology-choices/hybrid-considerations" data-linktype="absolute-path">Azure hybrid options</a></li> <li><a href="/en-us/hybrid/app-solutions/overview-app-design-considerations" data-linktype="absolute-path">Hybrid app design considerations</a></li> </ul> <p>Related architectures:</p> <ul> <li><a href="/en-us/azure/architecture/hybrid/azure-files-private" data-linktype="absolute-path">Azure enterprise cloud file share</a></li> <li><a href="/en-us/azure/architecture/example-scenario/hybrid/azure-files-on-premises-authentication" data-linktype="absolute-path">Azure Files accessed on-premises and secured by AD DS</a></li> <li><a href="/en-us/azure/architecture/example-scenario/hybrid/hybrid-file-share-dr-remote-local-branch-workers" data-linktype="absolute-path">Hybrid file share with disaster recovery for remote and local branch workers</a></li> <li><a href="/en-us/azure/architecture/hybrid/azure-file-share" data-linktype="absolute-path">Use Azure file shares in a hybrid environment</a></li> </ul> </div> </div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div> <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div> <!-- </content> --> </main><!-- recommendations section --><!-- end recommendations section --> <!-- feedback section --><section id="site-user-feedback-footer" class="font-size-sm margin-top-md" data-test-id="site-user-feedback-footer" data-bi-name="site-feedback-section"> <hr class="hr" /> <h2 id="feedback" class="title is-3">Feedback</h2> <div class="display-flex flex-wrap-wrap align-items-center"> <p class="font-weight-semibold margin-xxs margin-left-none">Was this page helpful?</p> <div class="buttons"> <button class="thumb-rating-button like button button-primary button-sm" data-test-id="footer-rating-yes" data-binary-rating-response="rating-yes" type="button" title="This article is helpful" data-bi-name="button-rating-yes" aria-pressed="false" > <span class="icon" aria-hidden="true"> <span class="docon docon-like"></span> </span> <span>Yes</span> </button> <button class="thumb-rating-button dislike button button-primary button-sm" data-test-id="footer-rating-no" data-binary-rating-response="rating-no" type="button" title="This article is not helpful" data-bi-name="button-rating-no" aria-pressed="false" > <span class="icon" aria-hidden="true"> <span class="docon docon-dislike"></span> </span> <span>No</span> </button> </div> </div><div class="display-flex flex-wrap-wrap margin-top-xxs"></div> </section><!-- end feedback section --> <!-- feedback report section --><!-- end feedback report section --><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a data-mscc-ic="false" class="locale-selector-link button button-sm button-clear flex-shrink-0" href="#" data-bi-name="select-locale"> <span class="icon" aria-hidden="true"> <span class="docon docon-world"></span> </span> <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden> <a href="https://aka.ms/yourcaliforniaprivacychoices" class="button button-sm button-clear flex-shrink-0" data-mscc-ic="false" data-bi-name="your-privacy-choices" > <svg role="img" aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43" focusable="false" > <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title> <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path> </svg> <span>Your Privacy Choices</span> </a> </div> <div class="flex-shrink-0"> <div class="dropdown has-caret-up"> <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger" aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme"> <span class="icon"> <span class="docon docon-sun" aria-hidden="true"></span> </span> <span>Theme</span> <span class="icon expanded-indicator" aria-hidden="true"> <span class="docon docon-chevron-down-light"></span> </span> </button> <div class="dropdown-menu" id="theme-menu-interactive" role="menu"> <ul class="theme-selector padding-xxs" role="none"> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="light"> <span class="theme-light margin-right-xxs"> <span class="theme-selector-icon border display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Light</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="dark"> <span class="theme-dark margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Dark</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="high-contrast"> <span class="theme-high-contrast margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>High contrast</span> </button> </li> </ul> </div> </div> </div> </div> <ul class="links" data-bi-name="footerlinks"> <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>© Microsoft 2024</li> </ul> </footer></div></div><div id="ms--additional-resources" class="right-container column is-4-desktop display-none display-block-desktop" data-bi-name="pageactions" role="complementary" aria-label="Additional resources" > <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column"> <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2> <section id="right-rail-events" data-bi-name="events-card" hidden></section> <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section> <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section> <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article"> <h3>In this article</h3> </nav> <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section> </div> </div></div> <!--end of div.columns --> </section> <!--end of .primary-holder --> <!-- interactive container --> <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark "> </aside> <!-- end of interactive container --> </div> </div> <!--end of .mainContainer --> <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a data-mscc-ic="false" class="locale-selector-link button button-sm button-clear flex-shrink-0" href="#" data-bi-name="select-locale"> <span class="icon" aria-hidden="true"> <span class="docon docon-world"></span> </span> <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden> <a href="https://aka.ms/yourcaliforniaprivacychoices" class="button button-sm button-clear flex-shrink-0" data-mscc-ic="false" data-bi-name="your-privacy-choices" > <svg role="img" aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43" focusable="false" > <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title> <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path> </svg> <span>Your Privacy Choices</span> </a> </div> <div class="flex-shrink-0"> <div class="dropdown has-caret-up"> <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger" aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme"> <span class="icon"> <span class="docon docon-sun" aria-hidden="true"></span> </span> <span>Theme</span> <span class="icon expanded-indicator" aria-hidden="true"> <span class="docon docon-chevron-down-light"></span> </span> </button> <div class="dropdown-menu" id="theme-menu" role="menu"> <ul class="theme-selector padding-xxs" role="none"> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="light"> <span class="theme-light margin-right-xxs"> <span class="theme-selector-icon border display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Light</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="dark"> <span class="theme-dark margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>Dark</span> </button> </li> <li class="theme display-block" role="menuitem"> <button class="button button-clear button-sm theme-control button-block justify-content-flex-start" data-theme-to="high-contrast"> <span class="theme-high-contrast margin-right-xxs"> <span class="border theme-selector-icon display-inline-block has-body-background" aria-hidden="true"> <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 14"> <rect width="22" height="14" class="has-fill-body-background" /> <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" /> <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" /> <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" /> <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" /> <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" /> <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" /> </svg> </span> </span> <span>High contrast</span> </button> </li> </ul> </div> </div> </div> </div> <ul class="links" data-bi-name="footerlinks"> <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li> <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>© Microsoft 2024</li> </ul> </footer> </section> <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div> </body> </html>