From c2f955153d6c9d3b80d71ac953ad5cf16e4f2e77 Mon Sep 17 00:00:00 2001 From: Amy Zhou Date: Fri, 30 Sep 2022 14:50:34 -0700 Subject: [PATCH 01/15] formatting changes, restructure of the TOC and combining articles for clarity --- windows/deployment/do/TOC.yml | 30 +--- .../do/{ => images}/numbereddeploymcc.png | Bin .../do/{ => images}/numberedprovmcc.png | Bin .../do/mcc-isp-create-provision-deploy.md | 142 ++++++++++++++++++ windows/deployment/do/mcc-isp-create.md | 55 ------- windows/deployment/do/mcc-isp-signup.md | 72 ++++++--- windows/deployment/do/mcc-isp-update.md | 45 +++++- .../do/mcc-isp-verify-cache-node.md | 42 +++++- windows/deployment/do/mcc-version-history.md | 7 +- 9 files changed, 279 insertions(+), 114 deletions(-) rename windows/deployment/do/{ => images}/numbereddeploymcc.png (100%) rename windows/deployment/do/{ => images}/numberedprovmcc.png (100%) create mode 100644 windows/deployment/do/mcc-isp-create-provision-deploy.md delete mode 100644 windows/deployment/do/mcc-isp-create.md diff --git a/windows/deployment/do/TOC.yml b/windows/deployment/do/TOC.yml index a497fe456a..c759f81586 100644 --- a/windows/deployment/do/TOC.yml +++ b/windows/deployment/do/TOC.yml @@ -33,45 +33,25 @@ href: mcc-enterprise.md - name: MCC for ISPs items: - - name: Concepts - items: - - name: Device provisioning - href: mcc-isp-device-provisioning.md - - name: Client routing - href: mcc-isp-client-routing.md - - name: Cache node configuration - href: mcc-isp-cache-node-configuration.md - - name: Traffic estimation - href: mcc-traffic-estimation.md - name: How-to guides items: - name: Operator sign up and service onboarding href: mcc-isp-signup.md - - name: Create the cache node in Azure portal - href: mcc-isp-create.md - - name: Provision and deploy cache node to your server - href: mcc-isp-provision-deploy.md - - name: Configure client routing for cache node - href: mcc-isp-configure-routing.md - - name: Verify cache node functionality + - name: Create, provision, and deploy the cache node in Azure portal + href: mcc-isp-create-provision-deploy.md + - name: Verify cache node functionality and monitor health and performance href: mcc-isp-verify-cache-node.md - - name: Update your cache node + - name: Update or uninstall your cache node href: mcc-isp-update.md - - name: Monitor cache node health and performance - href: mcc-isp-monitor.md - - name: Uninstall your cache node - href: mcc-isp-uninstall.md - name: Resources items: - - name: Community forum - href: link-to-come - name: FAQs href: mcc-isp-faq.md - name: Enhancing VM performance href: mcc-isp-vm-performance.md - name: Support and troubleshooting href: mcc-isp-support.md - - name: Version History + - name: Version history href: mcc-version-history.md - name: MCC for ISPs (Private Preview) href: mcc-isp.md diff --git a/windows/deployment/do/numbereddeploymcc.png b/windows/deployment/do/images/numbereddeploymcc.png similarity index 100% rename from windows/deployment/do/numbereddeploymcc.png rename to windows/deployment/do/images/numbereddeploymcc.png diff --git a/windows/deployment/do/numberedprovmcc.png b/windows/deployment/do/images/numberedprovmcc.png similarity index 100% rename from windows/deployment/do/numberedprovmcc.png rename to windows/deployment/do/images/numberedprovmcc.png diff --git a/windows/deployment/do/mcc-isp-create-provision-deploy.md b/windows/deployment/do/mcc-isp-create-provision-deploy.md new file mode 100644 index 0000000000..853cbbdffe --- /dev/null +++ b/windows/deployment/do/mcc-isp-create-provision-deploy.md @@ -0,0 +1,142 @@ +--- +title: Create, provision, and deploy the cache node in Azure portal +manager: dougeby +description: Instructions for creating, provisioning, and deploying Microsoft Connected Cache for ISP on Azure portal +keywords: updates, downloads, network, bandwidth +ms.prod: w10 +ms.mktglfcycl: deploy +audience: itpro +author: nidos +ms.localizationpriority: medium +ms.author: nidos +ms.collection: M365-modern-desktop +ms.topic: article +--- + +# Create, provision, and deploy the cache node in Azure portal + +**Applies to** + +- Windows 10 +- Windows 11 + +This article outlines how to create, provision, and deploy your Microsoft Connected Cache nodes. The creation and provisioning of your cache node takes place in Azure portal. The deployment of your cache node will require downloading an installer script that will be run on your cache server. + +> [!IMPORTANT] +> Before you can create your Microsoft Connected Cache, you will need to complete the sign up process [here](windows\deployment\do\mcc-isp-signup.md). You cannot proceed without signing up for our service. + +## Create cache node + +1. Open [Azure portal](https://www.portal.azure.com) and navigate to the **Microsoft Connected Cache** resource. + +1. Navigate to **Settings** > **Cache nodes** and select **Create Cache Node**. + + :::image type="content" source="images/createcachenode.png" alt-text="Screenshot of the create cache node page in the Azure portal"::: + +1. Provide a name for your cache node and select **Create** to create your cache node. + + :::image type="content" source="images/cachenodename.png" alt-text="Screenshot of the create cache node page in the Azure portal, with the cache node name input field."::: + +## Provision cache node + +During the provisioning of your cache node, there are many fields for you to configure your cache node. To learn more about the definitions of each field, view [Configuration fields](#configuration-fields) at the bottom of this article. + +### Client routing + +Before serving traffic to your customers, client routing configuration is needed. During the configuration of your cache node in Azure portal, you'll be able to route your clients to your cache node. + +Microsoft Connected Cache offers two ways for you to route your clients to your cache node. The first method of manual entry involves uploading a comma-separated list of CIDR blocks that represents the clients. The second method of setting BGP (Border Gateway Protocol) is more automatic and dynamic, which is set up by establishing neighborships with other ASNs. All routing methods are set up within Azure portal. + +Once client routing and other settings are configured, your cache node will be able to download content and serve traffic to your customers. + +At this time, only IPv4 addresses are supported. IPv6 addresses aren't supported. + +#### Manual routing + +You can manually upload a list of your CIDR blocks in Azure portal to enable manual routing of your customers to your cache node. + +#### BGP routing + +BGP (Border Gateway Protocol) routing is another method offered for client routing. BGP dynamically retrieves CIDR ranges by exchanging information with routers to understand reachable networks. For an automatic method of routing traffic, you can choose to configure BGP routing in Azure portal. + +1. Navigate to **Settings** > **Cache nodes**. Select the cache node you wish to provision. + + :::image type="content" source="images/numberedprovmcc.png" alt-text="Screenshot of the Azure portal depicting the cache node configuration page of a cache node. This screenshot shows all of the fields you can choose to configure the cache node."::: + +1. Enter the max allowable egress that your hardware can support. + +1. Under **Cache storage**, specify the location of the cache drives to store content along with the size of the cache drives in Gigabytes. +**Note:** Up to nine cache drives are supported. + +1. Under **Routing information**, select the routing method you would like to use. For more information see [Client routing](#client-routing). + +- If you choose **Manual routing**, enter your address range/CIDR blocks. +- If you choose **BGP routing**, enter the ASN and IP addresses of the neighborship. +**Note:** **Prefix count** and **IP Space** will stop showing 0 when BGP is successfully established. + +## Deploy cache node + +Once the user executes the deployment script, resources are created behind the scenes resulting in the successful cache node installation. The script takes the input of different IDs outlined below to create an IoT Central and an IoT Edge device. Even though Microsoft Connected Cache scenario isn't related to IoT, IoT Central and IoT Edge are installed for management and communication operation purposes. + +### Components installed during provisioning + +#### IoT Central + +IoT Central is the main hub that handles all messaging and requests from IoT Edge devices. To learn more about the interaction between IoT Edge and IoT Central, view [IoT Central](https://docs.microsoft.com/en-us/azure/iot-central/core/concepts-iot-edge) documentation. + +#### IoT Edge + +IoT Edge performs several functions important to manage MCC on your edge device: + +1. Installs and updates MCC on your edge device. +1. Maintains Azure IoT Edge security standards on your edge device. +1. Ensures that MCC is always running. +1. Reports MCC health and usage to the cloud for remote monitoring. + +### Components of the device provisioning script + +There are five IDs that the device provisioning script takes as input in order to successfully provision and install your cache server. The provisioning script will automatically include these keys, with no input necessary from the user. + +| ID | Description | +| -- | --- | +| Customer ID | The Azure subscription ID that the cache node is created in. | +| Cache node ID | The unique alphanumeric ID of the cache node being provisioned. | +| Customer key | | +| Cache node name | The name of the cache node. | +| Tenant ID | The unique ID associated with the Azure account. | + +:::image type="content" source="images/numbereddeploymcc.png" alt-text="Screenshot of the server provisioning tab within cache node configuration in Azure portal."::: + +1. After completing cache node provisioning, navigate to the **Server provisioning** tab. Select **Download provisioning package** to download the installation package to your server. + +1. Open a terminal window in the directory where you would like to deploy your cache node and run the following command to change the access permission to the Bash script: + + ```bash + sudo chmod +x installmcc.sh + ``` + +1. Run the deployment script that is shown for your cache node in Azure portal by copying and pasting the script in your terminal. The script may take a few minutes to run. If there were no errors, you have set up your cache node successfully. To verify the server is set up correctly, follow the steps verification steps [here](windows\deployment\do\mcc-isp-verify-cache-node.md). + +## General configuration fields + +| Field Name | Expected Value| Description | +| -- | --- | --- | +| **Cache node name** | Alphanumeric string that contains no spaces | The name of the cache node. You may choose names based on location like Seattle-1. This name must be unique and can't be changed later. | +| **Server IP address** | IPv4 address | IP address of your MCC server. This address is used to route end-user devices in your network to the server for Microsoft content downloads. The IP address must be publicly accessible. | +| **Max allowable egress (Mbps)** | Integer in Mbps | The maximum egress (Mbps) of your MCC based on the specifications of your hardware. For example, 10,000 Mbps.| +| **Enable cache node** | Enable or Disable | You can choose to enable or disable a cache node at any time. | + +### Storage fields + +| Field Name | Expected Value| Description | +| -- | --- | --- | +| **Cache drive** | File path string | Up to 9 drives can be configured for each cache node to configure cache storage. Enter the file path to each drive. For example: /dev/folder/ | +| **Cache drive size in gigabytes** | Integer in GB | Set the size of each drive configured for the cache node. | + +### Client routing fields + +| Field Name | Expected Value| Description | +| -- | --- | --- | +| **Manual routing - Address range/CIDR blocks** | IPv4 CIDR notation | The IP address range (CIDR blocks) that should be routed to the MCC server as a comma separated list. For example: 2.21.234.0/24, 3.22.235.0/24, 4.23.236.0/24 | +| **BGP - Neighbor ASN** | ASN | When configuring BGP, enter the ASN(s) of your neighbors that you want to establish. | +| **BGP - Neighbor IP address** | IPv4 address | When configuring BGP, enter the IP address(es) of neighbors that you want to establish. | diff --git a/windows/deployment/do/mcc-isp-create.md b/windows/deployment/do/mcc-isp-create.md deleted file mode 100644 index 9d7cbc0c86..0000000000 --- a/windows/deployment/do/mcc-isp-create.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Create Microsoft Connected Cache for ISP -manager: dougeby -description: Creating Microsoft Connected Cache for ISP on Azure portal -keywords: updates, downloads, network, bandwidth -ms.prod: w10 -ms.mktglfcycl: deploy -audience: itpro -author: nidos -ms.localizationpriority: medium -ms.author: nidos -ms.collection: M365-modern-desktop -ms.topic: article ---- - - -# Create Microsoft Connected Cache for ISP - -**Applies to** - -- Windows 10 -- Windows 11 - -
- -> [!IMPORTANT] - -> Before you can create your Microsoft Connected Cache, you will need to complete the sign up process [here](windows\deployment\do\mcc-isp-signup.md). - -
-
- -## Create Cache Node -
- - -1. Navigate to 'Cache nodes' under Settings and click 'Create Cache Node'. - -
- :::image type="content" source="images/createcachenode.png" alt-text="createcachenode"::: -
- -
- -2. Provide a name for your cache node and click 'Create' to create your cache node. -
- -:::image type="content" source="images/cachenodename.png" alt-text="cachenodename"::: - -
- -Once your cache node is created follow the instructions on [Provisioning and Deploying MCC](windows\deployment\do\mcc-isp-provision-deploy.md) to provision and deploy the cache node. - - - diff --git a/windows/deployment/do/mcc-isp-signup.md b/windows/deployment/do/mcc-isp-signup.md index ad2ce1e710..c92fad64da 100644 --- a/windows/deployment/do/mcc-isp-signup.md +++ b/windows/deployment/do/mcc-isp-signup.md @@ -1,5 +1,5 @@ --- -title: Service onboarding for Microsoft Connected Cache for ISP +title: Operator sign up and service onboarding manager: dougeby description: Service onboarding for Microsoft Connected Cache for ISP keywords: updates, downloads, network, bandwidth @@ -13,46 +13,74 @@ ms.collection: M365-modern-desktop ms.topic: article --- - -# Service Onboarding for Microsoft Connected Cache for ISP +# Operator sign up and service onboarding for Microsoft Connected Cache **Applies to** - Windows 10 - Windows 11 -
+This article details the process of signing up for Microsoft Connected Cache for Internet Service Providers (Public Preview). ## Resource creation and sign up process +1. Navigate to your [Azure portal](https://www.portal.azure.com). In the top search bar, search for **Microsoft Connected Cache**. -
+:::image type="content" source="images/searchmcc.png" alt-text="Screenshot of the Azure portal which shows the Microsoft Connected Cache resource in Azure marketplace."::: -1. Search for 'Microsoft Connected Cache' and go through the process of creating a resource by selecting the region and enter a name for your cache resource name. +1. Select **Create** to create a **Microsoft Connected Cache**. When prompted, enter a name for your cache resource. -:::image type="content" source="images/searchmcc.png" alt-text="searchmcc"::: +> [!IMPORTANT] +> After your resource has been created, we need some information to verify your network operator status and approve you to host Microsoft Connected Cache nodes. Please ensure that your [Peering DB](https://www.peeringdb.com/) organization information is up to date as this information will be used for verification. The NOC contact email will be used to send verification information. +1. Navigate to **Settings** > **Sign up**. Enter your organization ASN. Indicate whether you are a transit provider. If so, additionally, please include any ASN(s) for downstream network operators that you may transit traffic for. -
+:::image type="content" source="images/signup1.png" alt-text="Screenshot of the sign up page in the Microsoft Connected Cache resource page in Azure portal."::: -> [!IMPORTANT] -After your resource has been created, we need some information to verify you network operator status and approve you to host a Microsoft Connected Cache nodes. -> Please ensure that your [Peering DB](https://www.peeringdb.com/) organization information is up to date as this information will be used for verification. - -
+1. Once we verify the information entered, a verification code will be sent to the NOC email address provided on [Peering DB](https://www.peeringdb.com/). Once you receive the email, navigate to your Azure portal > **Microsoft Connected Cache** > **Settings** > **Verify operator**, and enter the verification code sent to the NOC email address. -2. Add your organization ASN below. The NOC contact email will be used to send verification information. Additionally, please include any ASN(s) for downstream network operators that you may transit traffic for. +**Note:** Verification codes expire in 24 hours. You will need to generate a new code if it expires. -:::image type="content" source="images/signup1.png" alt-text="sign up for mcc"::: +:::image type="content" source="images/verification.png" alt-text="Screenshot of the signup verification page on Azure portal for Microsoft Connected Cache."::: -
+Once verified, follow the instructions on [Create, provision, and deploy cache node](windows\deployment\do\mcc-isp-create-provision-deploy.md) to create your cache node. -3. Once we verify the information entered, a verification code will be sent to the NOC email address provided on Peering DB. In the Azure portal operator verification blade enter the verification code sent to the NOC email address. -**Note:** The verification code will expire in 24 hours. You will need to generate a new code if it expires. +## Traffic estimation -:::image type="content" source="images/verification.png" alt-text="operatorverification"::: +During the sign-up process, Microsoft will provide you with a traffic estimation based on your ASN(s). We make estimations based on our predictions on historical data about Microsoft content download volume. We'll use these estimations to recommend hardware or VM configurations. You can view these recommendations within the Azure portal. -
-
-Once verified follow the instruction on [Create Microsoft Connected Cache for ISP](windows\deployment\do\mcc-isp-create.md) to create your cache node. +We make these estimations based on the Microsoft content types that Microsoft Connected Cache serves. To learn more about the types of content that are supported, see [Delivery Optimization and Microsoft Connected Cache content type endpoints](delivery-optimization-endpoints.md). +### Cache performance + +To make sure you're maximizing the performance of your cache node, note the following: + +#### OS requirements + +The Microsoft Connected Cache module is optimized for Ubuntu 20.04 LTS. Install Ubuntu 20.04 LTS on a physical server or VM of your choice. + +#### NIC requirements + +- Multiple NICs on a single MCC instance are supported using a _link aggregated_ configuration. +- 10 Gbps NIC is the minimum speed recommended, but any NIC is supported. + +#### Drive performance + +The maximum number of disks supported is 9. When configuring your drives, we recommend SSD drives as cache read speed of SSD is superior to HDD. In addition, using multiple disks is recommended to improve cache performance. + +RAID disk configurations are discouraged as cache performance will be impacted. If using RAID disk configurations, ensure striping. + +### Hardware configuration example + +There are many hardware configurations that suit Microsoft Connected Cache. As an example, below is the hardware configuration of a customer who is able to egress 40 Gbps of traffic. + +**Dell PowerEdge R330** + +- 2 x Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40 GHz , total 32 core +- 48 GB, Micron Technology 18ASF1G72PDZ-2G1A1, Speed: 2133 MT/s +- 4 - Transcend SSD230s 1 TB SATA Drives +- Intel Corporation Ethernet 10G 2P X520 Adapter (Link Aggregated) + +### Virtual machines + +Microsoft Connected Cache supports both physical and virtual machines as cache servers. If you're using a virtual machine as your server, refer to [VM performance](mcc-isp-vm-performance.md) for tips on how to improve your VM performance. diff --git a/windows/deployment/do/mcc-isp-update.md b/windows/deployment/do/mcc-isp-update.md index 857ab95bab..22692e8959 100644 --- a/windows/deployment/do/mcc-isp-update.md +++ b/windows/deployment/do/mcc-isp-update.md @@ -1,7 +1,7 @@ --- -title: Update your cache node +title: Update or uninstall your cache node manager: dougeby -description: How to update your cache node +description: How to update or uninstall your cache node keywords: updates, downloads, network, bandwidth ms.prod: w10 ms.mktglfcycl: deploy @@ -13,11 +13,48 @@ ms.collection: M365-modern-desktop ms.topic: article --- -# Update your cache node +# Update or uninstall your cache node + +This article details how to update or uninstall your cache node. + +## Update cache node Microsoft will release updates for Microsoft Connected Cache periodically to improve performance, functionality, and security. Updates won't require any action from the customer. Instead, when an update is available, your cache node will automatically update during low traffic hours with minimal to no impact to your end customers. To view which version your cache nodes are currently on, navigate to the **Cache nodes** tab to view the versions in the list view. -To view update release notes, visit [Version History](mcc-version-history.md). +To view update release notes, visit [Version history](mcc-version-history.md). +## Uninstall cache node + +There are two main steps required to uninstall your cache node: + +1. Remove your cache node from Azure portal +1. Run the uninstall script to cleanly remove MCC from your server + +You must complete both steps to ensure a clean uninstall of your cache node. + +### Remove your cache node from Azure portal + +Within [Azure portal](https://www.portal.azure.com), navigate to **Cache Nodes**, then select the cache node you wish to delete. Once selected, select **Delete** on the top bar to remove this cache node from your account. + +### Run the uninstall script to cleanly remove Microsoft Connected Cache from your server + +In the installer zip file, you'll find the file **uninstallmcc.sh**. This script uninstalls Microsoft Connected Cache and all the related components. Only run it if you're facing issues with Microsoft Connected Cache installation. + +The **uninstallmcc.sh** script removes the following components: + +- IoT Edge +- Edge Agent +- Edge Hub +- MCC +- Moby CLI +- Moby engine + +To run the script, use the following commands: + +```bash +sudo chmod +x uninstallmcc.sh +sudo ./uninstallmcc.sh + +``` diff --git a/windows/deployment/do/mcc-isp-verify-cache-node.md b/windows/deployment/do/mcc-isp-verify-cache-node.md index 6eca96634f..e80f816a68 100644 --- a/windows/deployment/do/mcc-isp-verify-cache-node.md +++ b/windows/deployment/do/mcc-isp-verify-cache-node.md @@ -1,5 +1,5 @@ --- -title: Verify cache node functionality +title: Verify cache node functionality and monitor health and performance manager: dougeby description: How to verify the functionality of a cache node keywords: updates, downloads, network, bandwidth @@ -13,13 +13,15 @@ ms.collection: M365-modern-desktop ms.topic: article --- -# Verify cache node functionality +# Verify cache node functionality and monitor health and performance -### Verify functionality on Azure portal +This article details how to verify that your cache node(s) are functioning properly and serving traffic. In addition, this article details -Log into Azure portal and navigate to the Overview page. Select the **Monitoring** tab to verify the functionality of your server(s) by validating the number of healthy nodes shown. If you see any **Unhealthy nodes**, select the "Diagnose and Solve" link to troubleshoot and resolve the issue. +## Verify functionality on Azure portal -### Verify functionality on the server +Log into [Azure portal](https://www.portal.azure.com) and navigate to the **Overview** page. Select the **Monitoring** tab to verify the functionality of your server(s) by validating the number of healthy nodes shown. If you see any **Unhealthy nodes**, select the **Diagnose and Solve** link to troubleshoot and resolve the issue. + +## Verify functionality on the server It can take a few minutes for the container to deploy after you've saved the configuration. @@ -47,6 +49,34 @@ Similarly, enter the following URL into a web browser on any device on the netwo http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com ``` - If the test fails, for more information, see the [FAQs](#mcc-isp-faq) section. +## Monitor cache node health and performance + +Within Azure portal, there are many charts and graphs that are available to monitor cache node health and performance. + +### Available Metrics + +Within Azure portal, you're able to build your custom charts and graphs using the following available metrics: + +| Metric name | Description | +| -- | ---- | +| **Cache Efficiency** | Cache efficiency is defined as the total cache hit bytes divided by all bytes requested. The higher this value (0 - 100%), the more efficient the cache node is. | +| **Healthy nodes** | The number of cache nodes that are reporting as healthy| +| **Unhealthy nodes**| The number of cache nodes that are reporting as unhealthy| +| **Maximum in**| The maximum egress (in Gbps) of inbound traffic| +| **Maximum out**| The maximum egress (in Gbps) of outbound traffic| +| **Average in**| The average egress (in Gbps) of inbound traffic| +| **Average out**| The average egress (in Gbps) of outbound traffic| + +To learn more about how to build your custom charts and graphs, visit [Azure Monitor](https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/data-platform-metrics) for details. + +### Monitoring your metrics + +To view the metrics associated with your cache nodes, navigate to the Overview >> Monitoring tab within Azure portal. + +:::image type="content" source="images/mcc-img-metrics.PNG" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: + +You can choose to monitor the health and performance of all cache nodes or one by one by using the dropdown menu. The **Egress bits per second** graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. + +If you're unable to view metrics for your cache node, it may be that your cache node is unhealthy, inactive, or hasn't been fully configured. diff --git a/windows/deployment/do/mcc-version-history.md b/windows/deployment/do/mcc-version-history.md index b62e7d8607..88569ba393 100644 --- a/windows/deployment/do/mcc-version-history.md +++ b/windows/deployment/do/mcc-version-history.md @@ -13,8 +13,11 @@ ms.collection: M365-modern-desktop ms.topic: article --- -# Current Version -### Version 1332 +# Version History +Microsoft periodically releases software updates for your cache nodes to improve performance, caching efficiency, and other bug fixes. These updates will be performed automatically at low-traffic hours, requiring no + +## Current Version +#### Version 1332 Released September 15, 2022 Version notes: From 899984a9d902e4e600cd1987f8421acd6258095d Mon Sep 17 00:00:00 2001 From: Amy Zhou Date: Fri, 30 Sep 2022 17:21:59 -0700 Subject: [PATCH 02/15] faq is now a yaml file, other restructuring and spellcheck --- windows/deployment/do/TOC.yml | 14 +- .../deployment/do/mcc-enterprise-appendix.md | 122 +++++++ .../deployment/do/mcc-enterprise-deploy.md | 326 ++++++++++++++++++ .../deployment/do/mcc-enterprise-overview.md | 93 +++++ .../do/mcc-enterprise-update-uninstall.md | 45 +++ windows/deployment/do/mcc-isp-faq.md | 138 -------- windows/deployment/do/mcc-isp-faq.yml | 77 +++++ windows/deployment/do/mcc-isp-support.md | 40 +-- 8 files changed, 692 insertions(+), 163 deletions(-) create mode 100644 windows/deployment/do/mcc-enterprise-appendix.md create mode 100644 windows/deployment/do/mcc-enterprise-deploy.md create mode 100644 windows/deployment/do/mcc-enterprise-overview.md create mode 100644 windows/deployment/do/mcc-enterprise-update-uninstall.md delete mode 100644 windows/deployment/do/mcc-isp-faq.md create mode 100644 windows/deployment/do/mcc-isp-faq.yml diff --git a/windows/deployment/do/TOC.yml b/windows/deployment/do/TOC.yml index c759f81586..93e0e5d624 100644 --- a/windows/deployment/do/TOC.yml +++ b/windows/deployment/do/TOC.yml @@ -30,7 +30,15 @@ - name: Microsoft Connected Cache overview href: waas-microsoft-connected-cache.md - name: MCC for Enterprise and Education - href: mcc-enterprise.md + items: + - name: Overview and requirements + href: mcc-enterprise-overview.md + - name: Deploy Microsoft Connected Cache + href: mcc-enterprise-deploy.md + - name: Update and uninstall cache node + href: mcc-enterprise-update-uninstall.md + - name: Appendix + href: mcc-enterprise-appendix.md - name: MCC for ISPs items: - name: How-to guides @@ -45,8 +53,8 @@ href: mcc-isp-update.md - name: Resources items: - - name: FAQs - href: mcc-isp-faq.md + - name: Frequently Asked Questions + href: mcc-isp-faq.yml - name: Enhancing VM performance href: mcc-isp-vm-performance.md - name: Support and troubleshooting diff --git a/windows/deployment/do/mcc-enterprise-appendix.md b/windows/deployment/do/mcc-enterprise-appendix.md new file mode 100644 index 0000000000..0da8b56b15 --- /dev/null +++ b/windows/deployment/do/mcc-enterprise-appendix.md @@ -0,0 +1,122 @@ +--- +title: Appendix +manager: dougeby +description: Appendix on Microsoft Connected Cache (MCC) for Enterprise and Education. +ms.prod: w10 +author: amymzhou +ms.localizationpriority: medium +ms.author: amymzhou +ms.collection: M365-modern-desktop +ms.topic: article +--- + +# Appendix + +## Diagnostics Script + +If you're having issues with your MCC, we included a diagnostics script which will collect all your logs and zip them into a single file. You can then send us these logs via email for the MCC team to debug. + +To run this script: + +1. Navigate to the following folder in the MCC installation files: + + mccinstaller \> Eflow \> Diagnostics + +2. Run the following commands: + +```powershell +Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process +.\collectMccDiagnostics.ps1 +``` + +3. The script stores all the debug files into a folder and then creates a tar file. After the script is finished running, it will output the path of the tar file which you can share with us (should be “**\**\\mccdiagnostics\\support_bundle_\$timestamp.tar.gz”) + +4. [Email the MCC team](mailto:mccforenterprise@microsoft.com?subject=Debugging%20Help%20Needed%20for%20MCC%20for%20Enterprise) and attach this file asking for debugging support. Screenshots of the error along with any other warnings you saw will be helpful during out debugging process. + +## Steps to obtain an Azure Subscription ID + +1. Sign in to https://portal.azure.com/ and navigate to the Azure services section. +2. Click on **Subscriptions**. If you do not see **Subscriptions**, click on the **More Services** arrow and search for **Subscriptions**. +3. If you already have an Azure Subscription, skip to step 5. If you do not have an Azure Subscription, select **+ Add** on the top left. +4. Select the **Pay-As-You-Go** subscription. You'll be asked to enter credit card information, but you'll not be charged for using the MCC service. +5. On the **Subscriptions** blade, you'll find details about your current subscription. Click on the subscription name. +6. After you select the subscription name, you'll find the subscription ID in the **Overview** tab. Click on the **Copy to clipboard** icon next to your Subscription ID to copy the value. + +## Troubleshooting + +If you’re not able to sign up for a Microsoft Azure subscription with the error: **Account belongs to a directory that cannot be associated with an Azure subscription. Please sign in with a different account.** See [Can't sign up for a Microsoft Azure subscription](/troubleshoot/azure/general/cannot-sign-up-subscription). + +Also see [Troubleshoot issues when you sign up for a new account in the Azure portal](/azure/cost-management-billing/manage/troubleshoot-azure-sign-up). + +## IoT Edge runtime + +The Azure IoT Edge runtime enables custom and cloud logic on IoT Edge devices. +The runtime sits on the IoT Edge device, and performs management and +communication operations. The runtime performs several functions: + +- Installs and update workloads (Docker containers) on the device. +- Maintains Azure IoT Edge security standards on the device. +- Ensures that IoT Edge modules (Docker containers) are always running. +- Reports module (Docker containers) health to the cloud for remote monitoring. +- Manages communication between an IoT Edge device and the cloud. + +For more information on Azure IoT Edge, please see the [Azure IoT Edge documentation](/azure/iot-edge/about-iot-edge). + +## EFLOW + +- [What is Azure IoT Edge for Linux on Windows](/azure/iot-edge/iot-edge-for-linux-on-windows) +- [Install Azure IoT Edge for Linux on Windows](/azure/iot-edge/how-to-provision-single-device-linux-on-windows-symmetric#install-iot-edge) +- [PowerShell functions for Azure IoT Edge for Linux on Windows](/azure/iot-edge/reference-iot-edge-for-linux-on-windows-functions) +- EFLOW FAQ and Support: [Support · Azure/iotedge-eflow Wiki (github.com)](https://github.com/Azure/iotedge-eflow/wiki/Support#how-can-i-apply-updates-to-eflow) +- [Now ready for Production: Linux IoT Edge Modules on Windows - YouTube](https://www.youtube.com/watch?v=pgqVCg6cxVU&ab_channel=MicrosoftIoTDevelopers) + +## Routing local Windows Clients to an MCC + +### Get the IP address of your MCC using ifconfig + +There are multiple methods that can be used to apply a policy to PCs that should participate in downloading from the MCC. + +#### Registry Key + +You can either set your MCC IP address or FQDN using: + +1. Registry Key in 1709 and higher - + [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization]
+ "DOCacheHost"=" " + + From an elevated command prompt: + + ``` + reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization" /v DOCacheHost /t REG_SZ /d "10.137.187.38" /f + ``` + +2. MDM Path in 1809 or higher: + + .Vendor/MSFT/Policy/Config/DeliveryOptimization/DOCacheHost + +3. In Windows release version 1809 and later, you can apply the policy via Group Policy Editor. The policy to apply is **DOCacheHost**. To configure the clients to pull content from the MCC using Group Policy, set the Cache Server Hostname (Setting found under Computer Configuration, Administrative Templates, Windows Components, Delivery Optimization) to the IP address of your MCC. For example 10.137.187.38. + + ![eMCC img26](images/emcc26.png) + +**Verify Content using the DO Client** + +To verify that the Delivery Optimization client can download content using MCC, you can use the following steps: + +1. Download a game or application from the Microsoft Store. + + ![eMCC img27](images/emcc27.png) + +2. Verify downloads came from MCC by one of two methods: + + - Using PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see BytesFromCacheServer test + + ![eMCC img28](images/emcc28.png) + + - Looking at the Delivery Optimization Activity Monitor + + ![eMCC img29](images/emcc29.png) + +### Also see + +[Microsoft Connected Cache for ISPs](mcc-isp.md)
+[Introducing Microsoft Connected Cache](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/introducing-microsoft-connected-cache-microsoft-s-cloud-managed/ba-p/963898) diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md new file mode 100644 index 0000000000..f87f8260de --- /dev/null +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -0,0 +1,326 @@ +--- +title: Deploying your cache node +manager: dougeby +description: How to deploy Microsoft Connected Cache (MCC) for Enterprise and Education cache node +ms.prod: w10 +author: amymzhou +ms.localizationpriority: medium +ms.author: amymzhou +ms.collection: M365-modern-desktop +ms.topic: article +--- + +# Deploying your cache node + +**Applies to** + +- Windows 10 +- Windows 11 + +## Steps to deploy MCC + +To deploy MCC to your server: + +1. [Provide Microsoft with the Azure subscription ID](#provide-microsoft-with-the-azure-subscription-id) +2. [Create the MCC Resource in Azure](#create-the-mcc-resource-in-azure) +3. [Create an MCC Node](#create-an-mcc-node-in-azure) +4. [Edit Cache Node Information](#edit-cache-node-information) +5. [Install MCC on a physical server or VM](#install-mcc-on-windows) +6. [Verify proper functioning MCC server](#verify-proper-functioning-mcc-server) +7. [Review common Issues](#common-issues) if needed. + +For questions regarding these instructions contact [msconnectedcache@microsoft.com](mailto:msconnectedcache@microsoft.com) + +### Provide Microsoft with the Azure Subscription ID + +As part of the MCC preview onboarding process an Azure subscription ID must be provided to Microsoft. + +> [!IMPORTANT] +> [Take this survey](https://aka.ms/MSConnectedCacheSignup) and provide your Azure subscription ID and contact information to be added to the allowlist for this preview. You will not be able to proceed if you skip this step. + +For information about creating or locating your subscription ID, see [Steps to obtain an Azure Subscription ID](#steps-to-obtain-an-azure-subscription-id). + +### Create the MCC resource in Azure + +The MCC Azure management portal is used to create and manage MCC nodes. An Azure Subscription ID is used to grant access to the preview and to create the MCC resource in Azure and Cache nodes. + +Once you take the survey above and the MCC team adds your subscription ID to the allowlist, you will be given a link to the Azure portal where you can create the resource described below. + +1. On the Azure portal home page, choose **Create a resource**: + ![eMCC img02](images/emcc02.png) + +2. Type **Microsoft Connected Cache** into the search box, and hit **Enter** to show search results. + +> [!NOTE] +> You'll not see Microsoft Connected Cache in the drop-down list. You need to type it and press enter to see the result. + +3. Select **Microsoft Connected Cache** and choose **Create** on the next screen to start the process of creating the MCC resource. + + ![eMCC img03](images/emcc03.png) + ![eMCC img04](images/emcc04.png) + +4. Fill in the required fields to create the MCC resource. + + - Choose the subscription that you provided to Microsoft. + - Azure resource groups are logical groups of resources. Create a new resource group and choose a name for your resource group. + - Choose **(US) West US** for the location of the resource. This choice will not impact MCC if the physical location isn't in the West US, it's just a limitation of the preview. + + > [!NOTE] + > Your MCC resource will not be created properly if you do not select **(US) West US** + + - Choose a name for the MCC resource. + + > [!NOTE] + > Your MCC resource must not contain the word **Microsoft** in it. + + ![eMCC img05](images/emcc05.png) + +5. Once all the information has been entered, click the **Review + Create** button. Once validation is complete, click the **Create** button to start the + resource creation. + + ![eMCC img06](images/emcc06.png) + +#### Error: Validation failed + +- If you get a Validation failed error message on your portal, it's likely because you selected the **Location** as **US West 2** or some other location that isn't **(US) West US**. +- To resolve this error, go to the previous step and choose **(US) West US**. + + ![eMCC img07](images/emcc07.png) + +### Create an MCC node in Azure + +Creating an MCC node is a multi-step process and the first step is to access the MCC private preview management portal. + +1. After the successful resource creation click on the **Go to resource**. +2. Under **Cache Node Management** section on the leftmost panel, click on **Cache Nodes**. + + ![eMCC img08](images/emcc08.png) + +3. On the **Cache Nodes** blade, click on the **Create Cache Node** button. + + ![eMCC img09](images/emcc09.png) + +4. Clicking the **Create Cache Node** button will open the **Create Cache Node** page; **Cache Node Name** is the only field required for cache node creation. + +| **Field Name** | **Expected Value** | **Description** | +|---------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| +| **Cache Node Name** | Alphanumeric name that includes no spaces. | The name of the cache node. You may choose names based on location like Seattle-1. This name must be unique and cannot be changed later. | + +5. Enter the information for the **Cache Node** and click the **Create** button. + +![eMCC img9.5](images/emcc09.5.png) + +If there are errors, the form will provide guidance on how to correct the errors. + +Once the MCC node has been created, the installer instructions will be exposed. More details on the installer instructions will be addressed later in this article, in the [Install Connected Cache](#install-mcc-on-windows) section. + +![eMCC img10](images/emcc10.png) + +#### Edit cache node information + +Cache nodes can be deleted here by clicking the check box to the left of a **Cache Node Name** and then clicking the delete toolbar item. Be aware that if a cache node is deleted, there is no way to recover the cache node or any of the information related to the cache node. + +![eMCC img11](images/emcc11.png) + +### Install MCC on Windows + +Installing MCC on your Windows device is a simple process. A PowerShell script performs the following tasks: + + - Installs the Azure CLI + - Downloads, installs, and deploys EFLOW + - Enables Microsoft Update so EFLOW can stay up to date + - Creates a virtual machine + - Enables the firewall and opens ports 80 and 22 for inbound and outbound traffic. Port 80 is used by MCC, and port 22 is used for SSH communications. + - Configures Connected Cache tuning settings. + - Creates the necessary *FREE* Azure resource - IoT Hub/IoT Edge. + - Deploys the MCC container to server. + +#### Run the installer + +1. Download and unzip mccinstaller.zip from the create cache node page or cache node configuration page which contains the necessary installation files. + + ![eMCC img12](images/emcc12.png) + +Files contained in the mccinstaller.zip file: + + - **installmcc.ps1**: Main installer file. + - **installEflow.ps1**: Installs the necessary prerequisites such as the Linux VM, IoT Edge runtime, and Docker, and makes necessary host OS settings to optimize caching performance. + - **resourceDeploymentForConnectedCache.ps1**: Creates Azure cloud resources required to support MCC control plane. + - **mccdeployment.json**: Deployment manifest used by IoT Edge to deploy the MCC container and configure settings on the container, such as cache drive location sizes. + - **updatemcc.ps1**: The update script used to upgrade MCC to a particular version. + - **mccupdate.json**: Used as part of the update script + +1. Open Windows PowerShell as administrator and navigate to the location of these files. + +> [!NOTE] +> Ensure that Hyper-V is enabled on your device. +> Do not use PowerShell ISE, PowerShell 6.x, or PowerShell 7.x. Only Windows PowerShell version 5.x is supported. + + **Windows 10:** [Enable Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) + + **Windows Server:** [Install the Hyper-V role on Windows Server](/windows-server/virtualization/hyper-v/get-started/install-the-hyper-v-role-on-windows-server) + +#### If you're installing MCC on a local virtual machine: + +1. Enable Nested Virtualization + + ```powershell + Set -VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true + ``` +2. Enable Mac Spoofing + ```powershell + Get-VMNetworkAdapter -VMName "VM name" | Set-VMNetworkAdapter -MacAddressSpoofing On + ``` + **Virtual machine should be in the OFF state while enabling Nested Virtualization and Mac Spoofing** + +3. Set the execution policy + + ```powershell + Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process + ``` + > [!NOTE] + > After setting the execution policy, you'll see a warning asking if you wish to change the execution policy. Choose **[A] Yes to All**. + +4. Copy the command from the portal and run it in Windows PowerShell + + ![eMCC img13](images/emcc13.png) + + > [!NOTE] + > After running the command, and multiple times throughout the installation process, you'll receive the following notice. **Please select [R] Run once to proceed**. + >
+ >
Security warning + >
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run C:\\Users\\mccinstaller\\Eflow\\installmcc.ps1? + >
+ >
[D] Do not run **[R] Run once** [S] Suspend [?] Help (default is "D"): + +3. Choose whether you would like to create a new virtual switch or select an existing one. Name your switch and select the Net Adapter to use for the switch. A computer restart will be required if you're creating a new switch. + + > [!NOTE] + > Restarting your computer after creating a switch is recommended. You'll notice network delays during installation if the computer has not been restarted. + + If you restarted your computer after creating a switch, start from Step 2 above and skip step 5. + + ![eMCC img14](images/emcc14.png) + +4. Re-run the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. + + ![eMCC img15](images/emcc15.png) + +5. Decide whether you would like to use dynamic or static address for the Eflow VM + + ![eMCC img16](images/emcc16.png) + + > [!NOTE] + > Choosing a dynamic IP address might assign a different IP address when the MCC restarts. + >
A static IP address is recommended so you do not have to change this value in your management solution when MCC restarts. + +6. Choose where you would like to download, install, and store the virtual hard disk for EFLOW. You'll also be asked how much memory, storage, and cores you would like to allocate for the VM. In this example, we chose the default values for all prompts. + +7. Follow the Azure Device Login link and sign into the Azure portal. + + ![eMCC img17](images/emcc17.png) + +8. If this is your first MCC deployment, please select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. + + 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription; Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter “1”** + + ![eMCC img18](images/emcc18.png) + ![eMCC img19](images/emcc19.png) + +9. Your MCC deployment is now complete. + + 1. If you do not see any errors, please continue to the next section to validate your MCC deployment. + 2. After validating your MCC is properly functional, please review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. + 3. If you had errors during your deployment, see the [Troubleshooting](#troubleshooting) section in this article. + +### Verify proper functioning MCC server + +#### Verify Client Side + +Connect to the EFLOW VM and check if MCC is properly running: + +1. Open PowerShell as an Administrator +2. Enter the following commands: + +```powershell +Connect-EflowVm +sudo -s +iotedge list +``` + +![eMCC img20](images/emcc20.png) + +You should see MCC, edgeAgent, and edgeHub running. If you see edgeAgent or edgeHub but not MCC, please try this command in a few minutes. The MCC container can take a few minutes to deploy + +#### Verify server side + +For a validation of properly functioning MCC, execute the following command in the EFLOW VM or any device in the network. Replace with the IP address of the cache server. + +```powershell +wget [http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com] +``` + +A successful test result will look like this: + +![eMCC img21](images/emcc21.png) + +OR + +![eMCC img22](images/emcc22.png) + +Similarly, enter this URL from a browser in the network: + +[http://YourCacheServerIP/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com]() + +If the test fails, see the common issues section for more information. + +### Intune (or other management software) configuration for MCC + +For an Intune deployment, create a Configuration Profile and include the Cache Host eFlow IP Address or FQDN: + +![eMCC img23](images/emcc23.png) + +### Common Issues + +#### PowerShell issues + +If you're seeing errors similar to this: “The term ‘Get-Something’ isn't recognized as the name of a cmdlet, function, script file, or operable program.” + +1. Ensure you're running Windows PowerShell version 5.x. + +2. Run \$PSVersionTable and ensure you’re running version 5.x and *not version 6 or 7*. + +3. Ensure you have Hyper-V enabled: + + **Windows 10:** [Enable Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) + + **Windows Server:** [Install the Hyper-V role on Windows Server](/windows-server/virtualization/hyper-v/get-started/install-the-hyper-v-role-on-windows-server) + +#### Verify Running MCC Container + +Connect to the Connected Cache server and check the list of running IoT Edge modules using the following commands: + +```bash +Connect-EflowVm +sudo iotedge list​ +``` + +![eMCC img24](images/emcc24.png) + +If edgeAgent and edgeHub containers are listed, but not “MCC”, you may view the status of the IoT Edge security manager using the command: + +```bash +sudo journalctl -u iotedge -f +``` + +For example, this command will provide the current status of the starting, stopping of a container, or the container pull and start as is shown in the sample below: + +![eMCC img25](images/emcc25.png) + +Use this command to check the IoT Edge Journal + +```bash +sudo journalctl -u iotedge –f +``` + +Please note: You should consult the IoT Edge troubleshooting guide ([Common issues and resolutions for Azure IoT Edge](/azure/iot-edge/troubleshoot)) for any issues you may encounter configuring IoT Edge, but we have listed a few issues below that we hit during our internal validation. \ No newline at end of file diff --git a/windows/deployment/do/mcc-enterprise-overview.md b/windows/deployment/do/mcc-enterprise-overview.md new file mode 100644 index 0000000000..a1d3102da1 --- /dev/null +++ b/windows/deployment/do/mcc-enterprise-overview.md @@ -0,0 +1,93 @@ +--- +title: Overview and requirements +manager: dougeby +description: Overview and requirements of Microsoft Connected Cache (MCC) for Enterprise and Education. +ms.prod: w10 +author: amymzhou +ms.localizationpriority: medium +ms.author: amymzhou +ms.collection: M365-modern-desktop +ms.topic: article +--- + +# Overview and requirements of Microsoft Connected Cache for Enterprise and Education (private preview) + +**Applies to** + +- Windows 10 +- Windows 11 + +## Overview + +> [!IMPORTANT] +> Microsoft Connected Cache is currently a private preview feature. During this phase we invite customers to take part in early access for testing purposes. This phase does not include formal support, and should not be used for production workloads. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). + +Microsoft Connected Cache (MCC) preview is a software-only caching solution that delivers Microsoft content within Enterprise networks. MCC can be deployed to as many physical servers or VMs as needed, and is managed from a cloud portal. Cache nodes are created in the cloud portal and are configured by applying a client policy using your management tool, such as [Intune](/mem/intune/). + +MCC is a hybrid (a mix of on-premises and cloud resources) SaaS solution built as an Azure IoT Edge module; it's a Docker compatible Linux container that is deployed to your Windows devices. IoT Edge for Linux on Windows (EFLOW) was chosen because it's a secure, reliable container management infrastructure. EFLOW is a Linux virtual machine, based on Microsoft's first party CBL-Mariner operating system. It’s built with the IoT Edge runtime and validated as a tier 1 supported environment for IoT Edge workloads. MCC will be a Linux IoT Edge module running on the Windows Host OS. + +Even though your MCC scenario isn't related to IoT, Azure IoT Edge is used as a more generic Linux container, deployment, and management infrastructure. The Azure IoT Edge runtime sits on your designated MCC device and performs management and communication operations. The runtime performs the following important functions to manage MCC on your edge device: + +1. Installs and updates MCC on your edge device. +2. Maintains Azure IoT Edge security standards on your edge device. +3. Ensures that MCC is always running. +4. Reports MCC health and usage to the cloud for remote monitoring. + +To deploy a functional MCC to your device, you must obtain the necessary keys that will provision the Connected Cache instance to communicate with Delivery Optimization services and enable the device to cache and deliver content. See [figure 1](#fig1) below for a summary of the architecture of MCC, built using IoT Edge. + +For more information about Azure IoT Edge, see [What is Azure IoT Edge](/azure/iot-edge/about-iot-edge). + +## How MCC works + +The following steps describe how MCC is provisioned and used. + +1. The Azure Management Portal is used to create MCC nodes. +2. The MCC container is deployed and provisioned to a server using the installer provided in the portal. +3. Client policy is configured in your management solution to point to the IP address or FQDN of the cache server. +4. Microsoft end-user devices make range requests for content from the MCC node. +5. An MCC node pulls content from the CDN, seeds its local cache stored on disk, and delivers content to the client. +6. Subsequent requests from end-user devices for content come from the cache. + +If an MCC node is unavailable, the client will pull content from CDN to ensure uninterrupted service for your subscribers. + + + +![eMCC img01](images/emcc01.png) + +Figure 1: **MCC processes**. Each number in the diagram corresponds to the steps described above. + + +## Enterprise requirements for MCC + +1. **Azure subscription**: MCC management portal is hosted within Azure and is used to create the Connected Cache [Azure resource](/azure/cloud-adoption-framework/govern/resource-consistency/resource-access-management) and IoT Hub resource. Both are free services. + + Your Azure subscription ID is first used to provision MCC services, and enable access to the preview. The MCC server requirement for an Azure subscription will cost you nothing. If you do not have an Azure subscription already, you can create an Azure [Pay-As-You-Go](https://azure.microsoft.com/offers/ms-azr-0003p/) account which requires a credit card for verification purposes. For more information, see the [Azure Free Account FAQ](https://azure.microsoft.com/free/free-account-faq/). + + The resources used for the preview and in the future when this product is ready for production will be completely free to you, like other caching solutions. + +2. **Hardware to host MCC**: The recommended configuration will serve approximately 35000 managed devices, downloading a 2GB payload in 24-hour timeframe at a sustained rate of 6.5 Gbps. + + **EFLOW Requires Hyper-V support** + - On Windows client, enable the Hyper-V feature + - On Windows Server, install the Hyper-V role and create a default network switch + + Disk recommendations: + - Using an SSD is recommended as cache read speed of SSD is superior to HDD + + NIC requirements: + - Multiple NICs on a single MCC instance aren't supported. + - 1 Gbps NIC is the minimum speed recommended but any NIC is supported. + - For best performance, NIC and BIOS should support SR-IOV + + VM networking: + - An external virtual switch to support outbound and inbound network communication (created during the installation process) + +### Sizing recommendations + +| Component | Branch Office / Small Enterprise | Large Enterprise | +| -- | --- | --- | +| OS| Windows Server 2019*/2022
Windows 10*/11 (Pro or Enterprise) with Hyper-V Support

* Windows 10 and Windows Server 2019 build 17763 or later | Same | +|NIC | 1 Gbps | 5 Gbps | +|Disk | SSD
1 drive
50GB each |SSD
1 drive
200GB each | +|Memory | 4GB | 8GB | +|Cores | 4 | 8 | diff --git a/windows/deployment/do/mcc-enterprise-update-uninstall.md b/windows/deployment/do/mcc-enterprise-update-uninstall.md new file mode 100644 index 0000000000..8fcaea70c5 --- /dev/null +++ b/windows/deployment/do/mcc-enterprise-update-uninstall.md @@ -0,0 +1,45 @@ +--- +title: Update or uninstall Microsoft Connected Cache for Enterprise and Education +manager: dougeby +description: Details on updating or uninstalling Microsoft Connected Cache (MCC) for Enterprise and Education. +ms.prod: w10 +author: amymzhou +ms.localizationpriority: medium +ms.author: amymzhou +ms.collection: M365-modern-desktop +ms.topic: article +--- +# Update or uninstall Microsoft Connected Cache for Enterprise and Education + + +## Update MCC + +Throughout the private preview phase, we will send you security and feature updates for MCC. Please follow these steps to perform the update. + +Run the following command with the **arguments** we provided in the email to update your MCC: + +```powershell +# .\updatemcc.ps1 version="**\**" tenantid="**\**" customerid="**\**" cachenodeid="**\**" customerkey="**\**" +``` +For example: +```powershell +# .\updatemcc.ps1 version="msconnectedcacheprod.azurecr.io/mcc/linux/iot/mcc-ubuntu-iot-amd64:1.2.1.659" tenantid="799a999aa-99a1-99aa-99aa-9a9aa099db99" customerid="99a999aa-99a1-99aa-99aa-9aaa9aaa0saa" cachenodeid=" aa99aaaa-999a-9aas-99aa99daaa99 " customerkey="a99d999a-aaaa-aa99-0999aaaa99a” +``` + +## Uninstall MCC + +Please contact the MCC Team before uninstalling to let us know if you're facing +issues. + +This script will remove the following: + +1. EFLOW + Linux VM +2. IoT Edge +3. Edge Agent +4. Edge Hub +5. MCC +6. Moby CLI +7. Moby Engine + +To delete MCC, go to Control Panel \> Uninstall a program \> Select Azure IoT +Edge LTS \> Uninstall \ No newline at end of file diff --git a/windows/deployment/do/mcc-isp-faq.md b/windows/deployment/do/mcc-isp-faq.md deleted file mode 100644 index 5b317e2924..0000000000 --- a/windows/deployment/do/mcc-isp-faq.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: FAQs on Microsoft Connected Cache for ISP -manager: dougeby -description: FAQs on Microsoft Connected Cache (MCC) for ISP -keywords: updates, downloads, network, bandwidth -ms.prod: w10 -ms.mktglfcycl: deploy -audience: itpro -author: nidos -ms.localizationpriority: medium -ms.author: nidos -ms.collection: M365-modern-desktop -ms.topic: article ---- - -# Microsoft Connected Cache for ISP (public preview) - -**Applies to** - -- Windows 10 -- Windows 11 - -
- - **1. Is this a free service?** -Yes. Microsoft Connected Cache is a free service. - -
- -**2. What will Microsoft Connected Cache do for me? How will it impact our customers?** -As an ISP, your network can benefit from reduced load on your backbone and improve customer download experience for supported Microsoft static content. It will also help you save on CDN costs. - -
- -**3. Is there an NDA to sign?** - No NDA is required. - -
- -**4. What are the prerequisites and hardware requirements?** -- Azure subscription -- Hardware to host Microsoft Connected Cache - The recommended configuration below will serve approximately 35,000 consumer devices downloading a 2GB payload in 24-hour timeframe at a sustained rate of 6.5 Gbps. -We have 1 customer who is able to achieve 40 Gbps egress rate using the following hardware specification: - - Dell PowerEdge R330 - - 2 x Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz , total 32core - - 48GB, Micron Technology 18ASF1G72PDZ-2G1A1, Speed: 2133 MT/s - - 4 - Transcend SSD230s 1TB SATA Drives -Intel Corporation Ethernet 10G 2P X520 Adapter (Link Aggregated) - -
- -| Taffic Estimate | Hardware/VM Recommendation | -|-----------|:-----------:| -| <5G Peak | 8 Cores
16 GB Memory
1 SSD Drive 500 GB | -| 10 - 20G Peak | 16 Cores
32 GB Memory
2 - 3 SSD Drives 1 TB | -| 20 - 40G Peak | 32 Cores
64 GB Memory
4 - 6 SSDs 1 TB | - -
-
- -**5. Will I need to provide hardware BareMetal server or VM?** - Microsoft Connected Cache is a software-only caching solution and will require you to provide your own server to host the software. - -
- -**6. Can we use hard drives instead of SSDs?** -We highly recommend using SSDs as Microsoft Connected Cache is a read intensive application. We also recommend using multiple drives to improve performance. - -
- -**7. Will I need to manually enter the CIDR blocks? If I have multiple cache nodes, should I configure a subset of CIDR blocks to each cache node?** -You have the option to route your traffic using manual CIDR blocks or BGP. If you have multiple Microsoft Connected Cache(s), you can allocate subsets of CIDR blocks to each cache node if you wish. However, since Microsoft Connected Cache has automatic load balancing, we recommend adding all of your traffic to all of your cache nodes. - -
- -**8. Should I add any load balancing mechanism?** -You do not need to add any load balancing. Our service will take care of routing traffic if you have multiple cache nodes serving the same CIDR blocks based on the reported health of the cache node. - -
- -**9. How many Microsoft Connected Cache instances will I need? How do we setup if we support multiple countries?** -As stated in the table above, the recommended configuration will achieve near the maximum possible egress of 20Gbps with a two-port link aggregated NIC and four cache drives. If you provide us with your ASN numbers, we can give a rough estimate of how many Microsoft Connected Cache instances may be needed. If your ISP spans multiple countries, you can set up separate cache nodes per country. - -
- -**10. Where should we install Microsoft Connected Cache?** -You are in control of your hardware and you can pick the location based on your traffic and end customers. You can choose the location where you have your routers or where you have dense traffic or any other parameters. - -
- -**11. How long would a piece of content live within the Microsoft Connected Cache? Is content purged from the cache?** -A request for said content is made, and NGINX looks at the cache control headers from the original acquisition, and if that content has expired, NGINX will continue to serve the stale content while it is downloading the new content. We are caching the content for 30 days. The content will be in the hot cache path (open handles and such) for 24 hrs, but will reside on disk for 30 days. -The drive fills up and nginx will start to delete content based on its own algorithm, probably some combination of least recently used. - -
- -**12. What content is cached by Microsoft Connected Cache?** -See [Delivery Optimization and Microsoft Connected Cache content endpoints - Windows Deployment](delivery-optimization-endpoints.md) for more information. - -
- -**13. Does Microsoft Connected Cache support Xbox or Teams content?** -Currently, Microsoft Connected Cache does not support Xbox or Teams content. However, supporting Xbox content is of high priority, and we expect this feature in the near future. We'll let you know as soon as it becomes available! - -
- -**14. Is IPV6 supported?** -No, we do not currently support IPV6. We plan to support it in the future. - -
- -**15. Is Microsoft Connected Cache stable and reliable?** -We have already successfully onboarded ISPs in many countries around the world and have received positive feedback! However, you can always start off with a portion of your CIDR blocks to test out the performance of MCC before expanding to more customers. - -
- -**16.How does Microsoft Connected Cache populate its content?** -Microsoft Connected Cache is a cold cache warmed by client requests. The client requests content and that is what fills up the cache. There is no off-peak cache fill necessary. -Microsoft Connected Cache will reach out to different CDN providers just like a client device would. The traffic flow from Microsoft Connected Cache will vary depending on how you currently transit to each of these CDN providers. The content can come from 3rd party CDNs or from AFD. - -
- -**17. What do I do if I need more support and have more questions even after reading this FAQ page?** -You can find more information or post your questions on MCC Community Forum. - - -For further support for your Microsoft Connected Cache you can find solutions to common problems here. - -
- -**18. What CDNs will Microsoft Connected Cache pull content from?** - Microsoft relies on a dynamic mix of 1st and 3rd party CDN providers to ensure enough capacity, redundancy, and performance for the delivery of Microsoft served content. Though we do not provide lists of the CDN vendors we utilize as they can change without notice, our endpoints are public knowledge. If someone were to perform a series of DNS lookups against our endpoints (tlu.dl.delivery.mp.microsoft.com for example), they would be able to determine which CDN or CDNs were in rotation at a given point in time: - - $ dig +noall +answer tlu.dl.delivery.mp.microsoft.com | grep -P "IN\tA" - c-0001.c-msedge.net. 20 IN A 13.107.4.50 - - $ whois 13.107.4.50|grep "Organization:" - Organization: Microsoft Corporation (MSFT) diff --git a/windows/deployment/do/mcc-isp-faq.yml b/windows/deployment/do/mcc-isp-faq.yml new file mode 100644 index 0000000000..53b3ae1b0e --- /dev/null +++ b/windows/deployment/do/mcc-isp-faq.yml @@ -0,0 +1,77 @@ +### YamlMime:FAQ +metadata: + title: Microsoft Connected Cache Frequently Asked Questions + description: The following article is a list of frequently asked questions for Microsoft Connected Cache. + ms.sitesec: library + ms.pagetype: security + ms.localizationpriority: medium + author: amymzhou + ms.author: amymzhou + manager: dougeby + audience: ITPro + ms.collection: + - M365-security-compliance + - highpri + ms.topic: faq + ms.date: 09/30/2022 + ms.custom: seo-marvel-apr2020 +title: Microsoft Connected Cache Frequently Asked Questions +summary: | + **Applies to** + - Windows 10 + - Windows 11 + +sections: + - name: Ignored + questions: + - question: Is this product a free service? + answer: Yes. Microsoft Connected Cache is a free service. + - question: What will Microsoft Connected Cache do for me? How will it impact our customers? + answer: As an ISP, your network can benefit from reduced load on your backbone and improve customer download experience for supported Microsoft static content. It will also help you save on CDN costs. + - question: Is there a non-disclosure agreement to sign? + answer: No non-disclosure agreement is required. + - question: What are the prerequisites and hardware requirements? + answer: | + - Azure subscription + - Hardware to host Microsoft Connected Cache - The recommended configuration below will serve approximately 35,000 consumer devices downloading a 2-GB payload in 24-hour timeframe at a sustained rate of 6.5 Gbps. + + We have one customer who is able to achieve 40-Gbps egress rate using the following hardware specification: + - Dell PowerEdge R330 + - 2 x Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40 GHz , total 32 core + - 48 GB, Micron Technology 18ASF1G72PDZ-2G1A1, Speed: 2133 MT/s + - 4 - Transcend SSD230s 1 TB SATA Drives + Intel Corporation Ethernet 10G 2P X520 Adapter (Link Aggregated) + - question: Will I need to provide hardware BareMetal server or VM? + answer: Microsoft Connected Cache is a software-only caching solution and will require you to provide your own server to host the software. + - question: Can we use hard drives instead of SSDs? + answer: We highly recommend using SSDs as Microsoft Connected Cache is a read intensive application. We also recommend using multiple drives to improve performance. + - question: Will I need to manually enter the CIDR blocks? If I have multiple cache nodes, should I configure a subset of CIDR blocks to each cache node? + answer: You can choose route your traffic using manual CIDR blocks or BGP. If you have multiple Microsoft Connected Cache(s), you can allocate subsets of CIDR blocks to each cache node if you wish. However, since Microsoft Connected Cache has automatic load balancing, we recommend adding all of your traffic to all of your cache nodes. + - question: Should I add any load balancing mechanism? + answer: You don't need to add any load balancing. Our service will take care of routing traffic if you have multiple cache nodes serving the same CIDR blocks based on the reported health of the cache node. + - question: How many Microsoft Connected Cache instances will I need? How do we set up if we support multiple countries? + answer: As stated in the table above, the recommended configuration will achieve near the maximum possible egress of 20 Gbps with a two-port link aggregated NIC and four cache drives. If you provide us with your ASN numbers, we can give a rough estimate of how many Microsoft Connected Cache instances may be needed. If your ISP spans multiple countries, you can set up separate cache nodes per country. + - question: Where should we install Microsoft Connected Cache? + answer: You are in control of your hardware and you can pick the location based on your traffic and end customers. You can choose the location where you have your routers or where you have dense traffic or any other parameters. + - question: How long would a piece of content live within the Microsoft Connected Cache? Is content purged from the cache? + answer: Once a request for said content is made, NGINX will look at the cache control headers from the original acquisition. If that content has expired, NGINX will continue to serve the stale content while it's downloading the new content. We cache the content for 30 days. The content will be in the hot cache path (open handles and such) for 24 hrs, but will reside on disk for 30 days. The drive fills up and nginx will start to delete content based on its own algorithm, probably some combination of least recently used. + - question: What content is cached by Microsoft Connected Cache? + answer: For more information about content cached, see [Delivery Optimization and Microsoft Connected Cache content endpoints - Windows Deployment](delivery-optimization-endpoints.md). + - question: Does Microsoft Connected Cache support Xbox or Teams content? + answer: Currently, Microsoft Connected Cache doesn't support Xbox or Teams content. However, supporting Xbox content is of high priority, and we expect this feature soon. We'll let you know as soon as it becomes available! + - question: Is IPv6 supported? + answer: No, we don't currently support IPV6. We plan to support it in the future. + - question: Is Microsoft Connected Cache stable and reliable? + answer: We have already successfully onboarded ISPs in many countries around the world and have received positive feedback! However, you can always start off with a portion of your CIDR blocks to test out the performance of MCC before expanding to more customers. + - question: How does Microsoft Connected Cache populate its content? + answer: Microsoft Connected Cache is a cold cache warmed by client requests. The client requests content and that is what fills up the cache. There's no off-peak cache fill necessary. Microsoft Connected Cache will reach out to different CDN providers just like a client device would. The traffic flow from Microsoft Connected Cache will vary depending on how you currently transit to each of these CDN providers. The content can come from third party CDNs or from AFD. + - question: What do I do if I need more support and have more questions even after reading this FAQ page? + answer: For further support for Microsoft Connected Cache, visit [Troubleshooting Issues for Microsoft Connected Cache for ISP (public preview)](mcc-isp-support.md). + - question: What CDNs will Microsoft Connected Cache pull content from? + answer: | + Microsoft relies on a dynamic mix of 1st and 3rd party CDN providers to ensure enough capacity, redundancy, and performance for the delivery of Microsoft served content. Though we don't provide lists of the CDN vendors we utilize as they can change without notice, our endpoints are public knowledge. If someone were to perform a series of DNS lookups against our endpoints (tlu.dl.delivery.mp.microsoft.com for example), they would be able to determine which CDN or CDNs were in rotation at a given point in time: + $ dig +noall +answer tlu.dl.delivery.mp.microsoft.com | grep -P "IN\tA" + c-0001.c-msedge.net. 20 IN A 13.107.4.50 + + $ whois 13.107.4.50|grep "Organization:" + Organization: Microsoft Corporation (MSFT) diff --git a/windows/deployment/do/mcc-isp-support.md b/windows/deployment/do/mcc-isp-support.md index 2fcee4dda3..6c99f12c9c 100644 --- a/windows/deployment/do/mcc-isp-support.md +++ b/windows/deployment/do/mcc-isp-support.md @@ -1,5 +1,5 @@ --- -title: Troubleshooting Issues for Microsoft Connected Cache for ISP +title: Support and troubleshooting manager: dougeby description: Troubleshooting Issues for Microsoft Connected Cache for ISP keywords: updates, downloads, network, bandwidth @@ -13,38 +13,34 @@ ms.collection: M365-modern-desktop ms.topic: article --- -# Troubleshooting Issues for Microsoft Connected Cache for ISP (public preview) +# Support and troubleshooting **Applies to** - Windows 10 - Windows 11 -
+## Sign up errors -## Sign up Errors +#### Cannot verify account -### Could not verify account: -During sign up we verify the information you provide against what is present in [Peering DB]. Make sure the information you have provided on Peering DB is up to date and matches what you provide during sign up. -
-
+During sign-up, we verify the information you provide against what is present in [Peering DB](https://www.peeringdb.com/). Make sure the information for your ISP entry on [Peering DB](https://www.peeringdb.com/) is up to date and matches what you provide during sign-up. -### Invalid verification code: -During sign up, a verification code is sent to your NOC email address present in Peering DB. **TBD** This code expires in 24 hours. You will need to request a new verification code and use that to complete sign up. -
- -
+#### Invalid verification code +During sign-up, a verification code is sent to your NOC email address present in [Peering DB](https://www.peeringdb.com/). This code expires in 24 hours. If expired, you'll need to request a new verification code to complete sign up. ## Cache Node Errors -### Cannot find my cache node: -If you previously had access to your cache nodes but it is now no longer accessible, it may be because you had a trial subscription and its trial period ended. -#### Recommended steps: -1. Create a new Azure Pay As You Go subscription -1. Recreate the cache nodes using the new subscription +#### Cannot find my cache node + +Did you previously had access to your cache nodes but it's now no longer accessible? If so, it may be because you had a trial subscription, and its trial period ended. To resolve this issue, complete the following two steps: -#### Recommended Documents: -[Steps to obtain Azure subscription](https://aka.ms/MCC-Azure-Subscription) -[Pay-as-you-go-subscription](https://azure.microsoft.com/en-us/offers/ms-azr-0003p/) -[Azure free account FAQs](https://azure.microsoft.com/en-us/free/free-account-faq/) \ No newline at end of file +1. Create a new Azure Pay-As-You-Go subscription +1. Recreate the cache nodes using the new subscription + +#### Recommended Documents + +[Steps to obtain Azure subscription](https://aka.ms/MCC-Azure-Subscription) +[Pay-as-you-go-subscription](https://azure.microsoft.com/en-us/offers/ms-azr-0003p/) +[Azure free account FAQs](https://azure.microsoft.com/en-us/free/free-account-faq/) \ No newline at end of file From 65543413d60b8c78774a25b042702419c7d92720 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Mon, 10 Oct 2022 15:54:25 -0700 Subject: [PATCH 03/15] edits to mcc-enterprise-deploy.md for warnings and minor edits --- .../deployment/do/mcc-enterprise-deploy.md | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md index f87f8260de..98aa3cb0ec 100644 --- a/windows/deployment/do/mcc-enterprise-deploy.md +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -5,7 +5,7 @@ description: How to deploy Microsoft Connected Cache (MCC) for Enterprise and Ed ms.prod: w10 author: amymzhou ms.localizationpriority: medium -ms.author: amymzhou +ms.author: amyzhou ms.collection: M365-modern-desktop ms.topic: article --- @@ -21,13 +21,13 @@ ms.topic: article To deploy MCC to your server: -1. [Provide Microsoft with the Azure subscription ID](#provide-microsoft-with-the-azure-subscription-id) -2. [Create the MCC Resource in Azure](#create-the-mcc-resource-in-azure) -3. [Create an MCC Node](#create-an-mcc-node-in-azure) -4. [Edit Cache Node Information](#edit-cache-node-information) -5. [Install MCC on a physical server or VM](#install-mcc-on-windows) -6. [Verify proper functioning MCC server](#verify-proper-functioning-mcc-server) -7. [Review common Issues](#common-issues) if needed. +1. [Provide Microsoft with the Azure subscription ID](#provide-microsoft-with-the-azure-subscription-id) +1. [Create the MCC Resource in Azure](#create-the-mcc-resource-in-azure) +1. [Create an MCC Node](#create-an-mcc-node-in-azure) +1. [Edit Cache Node Information](#edit-cache-node-information) +1. [Install MCC on a physical server or VM](#install-mcc-on-windows) +1. [Verify proper functioning MCC server](#verify-proper-functioning-mcc-server) +1. [Review common Issues](#common-issues) if needed. For questions regarding these instructions contact [msconnectedcache@microsoft.com](mailto:msconnectedcache@microsoft.com) @@ -38,13 +38,13 @@ As part of the MCC preview onboarding process an Azure subscription ID must be p > [!IMPORTANT] > [Take this survey](https://aka.ms/MSConnectedCacheSignup) and provide your Azure subscription ID and contact information to be added to the allowlist for this preview. You will not be able to proceed if you skip this step. -For information about creating or locating your subscription ID, see [Steps to obtain an Azure Subscription ID](#steps-to-obtain-an-azure-subscription-id). +For information about creating or locating your subscription ID, see [Steps to obtain an Azure Subscription ID](mcc-enterprise-appendix.md#steps-to-obtain-an-azure-subscription-id). ### Create the MCC resource in Azure The MCC Azure management portal is used to create and manage MCC nodes. An Azure Subscription ID is used to grant access to the preview and to create the MCC resource in Azure and Cache nodes. -Once you take the survey above and the MCC team adds your subscription ID to the allowlist, you will be given a link to the Azure portal where you can create the resource described below. +Once you take the survey above and the MCC team adds your subscription ID to the allowlist, you'll be given a link to the Azure portal where you can create the resource described below. 1. On the Azure portal home page, choose **Create a resource**: ![eMCC img02](images/emcc02.png) @@ -63,7 +63,7 @@ Once you take the survey above and the MCC team adds your subscription ID to the - Choose the subscription that you provided to Microsoft. - Azure resource groups are logical groups of resources. Create a new resource group and choose a name for your resource group. - - Choose **(US) West US** for the location of the resource. This choice will not impact MCC if the physical location isn't in the West US, it's just a limitation of the preview. + - Choose **(US) West US** for the location of the resource. This choice won't impact MCC if the physical location isn't in the West US, it's just a limitation of the preview. > [!NOTE] > Your MCC resource will not be created properly if you do not select **(US) West US** @@ -75,7 +75,7 @@ Once you take the survey above and the MCC team adds your subscription ID to the ![eMCC img05](images/emcc05.png) -5. Once all the information has been entered, click the **Review + Create** button. Once validation is complete, click the **Create** button to start the +5. Once all the information has been entered, select the **Review + Create** button. Once validation is complete, select the **Create** button to start the resource creation. ![eMCC img06](images/emcc06.png) @@ -91,22 +91,22 @@ Once you take the survey above and the MCC team adds your subscription ID to the Creating an MCC node is a multi-step process and the first step is to access the MCC private preview management portal. -1. After the successful resource creation click on the **Go to resource**. -2. Under **Cache Node Management** section on the leftmost panel, click on **Cache Nodes**. +1. After the successful resource creation, select **Go to resource**. +2. Under **Cache Node Management** section on the leftmost panel, select **Cache Nodes**. ![eMCC img08](images/emcc08.png) -3. On the **Cache Nodes** blade, click on the **Create Cache Node** button. +3. On the **Cache Nodes** blade, select the **Create Cache Node** button. ![eMCC img09](images/emcc09.png) -4. Clicking the **Create Cache Node** button will open the **Create Cache Node** page; **Cache Node Name** is the only field required for cache node creation. +4. Selecting the **Create Cache Node** button will open the **Create Cache Node** page; **Cache Node Name** is the only field required for cache node creation. | **Field Name** | **Expected Value** | **Description** | |---------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| -| **Cache Node Name** | Alphanumeric name that includes no spaces. | The name of the cache node. You may choose names based on location like Seattle-1. This name must be unique and cannot be changed later. | +| **Cache Node Name** | Alphanumeric name that includes no spaces. | The name of the cache node. You may choose names based on location like Seattle-1. This name must be unique and can't be changed later. | -5. Enter the information for the **Cache Node** and click the **Create** button. +5. Enter the information for the **Cache Node** and select the **Create** button. ![eMCC img9.5](images/emcc09.5.png) @@ -118,7 +118,7 @@ Once the MCC node has been created, the installer instructions will be exposed. #### Edit cache node information -Cache nodes can be deleted here by clicking the check box to the left of a **Cache Node Name** and then clicking the delete toolbar item. Be aware that if a cache node is deleted, there is no way to recover the cache node or any of the information related to the cache node. +Cache nodes can be deleted here by selecting the check box to the left of a **Cache Node Name** and then selecting the delete toolbar item. Be aware that if a cache node is deleted, there's no way to recover the cache node or any of the information related to the cache node. ![eMCC img11](images/emcc11.png) @@ -137,7 +137,7 @@ Installing MCC on your Windows device is a simple process. A PowerShell script p #### Run the installer -1. Download and unzip mccinstaller.zip from the create cache node page or cache node configuration page which contains the necessary installation files. +1. Download and unzip mccinstaller.zip from the create cache node page or cache node configuration page, which contains the necessary installation files. ![eMCC img12](images/emcc12.png) @@ -202,7 +202,7 @@ Files contained in the mccinstaller.zip file: ![eMCC img14](images/emcc14.png) -4. Re-run the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. +4. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. ![eMCC img15](images/emcc15.png) @@ -220,7 +220,7 @@ Files contained in the mccinstaller.zip file: ![eMCC img17](images/emcc17.png) -8. If this is your first MCC deployment, please select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. +8. If this is your first MCC deployment, select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription; Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter “1”** @@ -229,9 +229,9 @@ Files contained in the mccinstaller.zip file: 9. Your MCC deployment is now complete. - 1. If you do not see any errors, please continue to the next section to validate your MCC deployment. - 2. After validating your MCC is properly functional, please review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. - 3. If you had errors during your deployment, see the [Troubleshooting](#troubleshooting) section in this article. + 1. If you don't see any errors, continue to the next section to validate your MCC deployment. + 2. After validating your MCC is properly functional, review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. + 3. If you had errors during your deployment, see the [Common Issues](#common-issues) section in this article. ### Verify proper functioning MCC server @@ -272,7 +272,7 @@ Similarly, enter this URL from a browser in the network: [http://YourCacheServerIP/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com]() -If the test fails, see the common issues section for more information. +If the test fails, see the [common issues](#common-issues) section for more information. ### Intune (or other management software) configuration for MCC @@ -323,4 +323,5 @@ Use this command to check the IoT Edge Journal sudo journalctl -u iotedge –f ``` -Please note: You should consult the IoT Edge troubleshooting guide ([Common issues and resolutions for Azure IoT Edge](/azure/iot-edge/troubleshoot)) for any issues you may encounter configuring IoT Edge, but we have listed a few issues below that we hit during our internal validation. \ No newline at end of file +> [!NOTE] +> You should consult the IoT Edge troubleshooting guide ([Common issues and resolutions for Azure IoT Edge](/azure/iot-edge/troubleshoot)) for any issues you may encounter configuring IoT Edge, but we've listed a few issues that we encountered during our internal validation. From 67e96054f3f9a880683f5c48030e0135d5225408 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Mon, 10 Oct 2022 16:08:02 -0700 Subject: [PATCH 04/15] mcc-isp-create-provision-deploy.md edits --- .../do/mcc-isp-create-provision-deploy.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/deployment/do/mcc-isp-create-provision-deploy.md b/windows/deployment/do/mcc-isp-create-provision-deploy.md index 853cbbdffe..9183c76dd9 100644 --- a/windows/deployment/do/mcc-isp-create-provision-deploy.md +++ b/windows/deployment/do/mcc-isp-create-provision-deploy.md @@ -17,13 +17,13 @@ ms.topic: article **Applies to** -- Windows 10 +- Windows 10 - Windows 11 This article outlines how to create, provision, and deploy your Microsoft Connected Cache nodes. The creation and provisioning of your cache node takes place in Azure portal. The deployment of your cache node will require downloading an installer script that will be run on your cache server. > [!IMPORTANT] -> Before you can create your Microsoft Connected Cache, you will need to complete the sign up process [here](windows\deployment\do\mcc-isp-signup.md). You cannot proceed without signing up for our service. +> Before you can create your Microsoft Connected Cache, you will need to complete the [sign up process](mcc-isp-signup.md). You cannot proceed without signing up for our service. ## Create cache node @@ -39,7 +39,7 @@ This article outlines how to create, provision, and deploy your Microsoft Connec ## Provision cache node -During the provisioning of your cache node, there are many fields for you to configure your cache node. To learn more about the definitions of each field, view [Configuration fields](#configuration-fields) at the bottom of this article. +During the provisioning of your cache node, there are many fields for you to configure your cache node. To learn more about the definitions of each field, review the [Configuration fields](#general-configuration-fields) at the bottom of this article. ### Client routing @@ -68,7 +68,7 @@ BGP (Border Gateway Protocol) routing is another method offered for client routi 1. Under **Cache storage**, specify the location of the cache drives to store content along with the size of the cache drives in Gigabytes. **Note:** Up to nine cache drives are supported. -1. Under **Routing information**, select the routing method you would like to use. For more information see [Client routing](#client-routing). +1. Under **Routing information**, select the routing method you would like to use. For more information, see [Client routing](#client-routing). - If you choose **Manual routing**, enter your address range/CIDR blocks. - If you choose **BGP routing**, enter the ASN and IP addresses of the neighborship. @@ -82,7 +82,7 @@ Once the user executes the deployment script, resources are created behind the s #### IoT Central -IoT Central is the main hub that handles all messaging and requests from IoT Edge devices. To learn more about the interaction between IoT Edge and IoT Central, view [IoT Central](https://docs.microsoft.com/en-us/azure/iot-central/core/concepts-iot-edge) documentation. +IoT Central is the main hub that handles all messaging and requests from IoT Edge devices. To learn more about the interaction between IoT Edge and IoT Central, review the [IoT Central](/azure/iot-central/core/concepts-iot-edge) documentation. #### IoT Edge @@ -101,7 +101,7 @@ There are five IDs that the device provisioning script takes as input in order t | -- | --- | | Customer ID | The Azure subscription ID that the cache node is created in. | | Cache node ID | The unique alphanumeric ID of the cache node being provisioned. | -| Customer key | | +| Customer Key | | | Cache node name | The name of the cache node. | | Tenant ID | The unique ID associated with the Azure account. | @@ -115,7 +115,7 @@ There are five IDs that the device provisioning script takes as input in order t sudo chmod +x installmcc.sh ``` -1. Run the deployment script that is shown for your cache node in Azure portal by copying and pasting the script in your terminal. The script may take a few minutes to run. If there were no errors, you have set up your cache node successfully. To verify the server is set up correctly, follow the steps verification steps [here](windows\deployment\do\mcc-isp-verify-cache-node.md). +1. Run the deployment script that is shown for your cache node in Azure portal by copying and pasting the script in your terminal. The script may take a few minutes to run. If there were no errors, you have set up your cache node successfully. To verify the server is set up correctly, follow the [verification steps](mcc-isp-verify-cache-node.md). ## General configuration fields From ffbb4c74775e39410f2b39802292397a3d4f9248 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 11 Oct 2022 11:57:39 -0700 Subject: [PATCH 05/15] edits --- windows/deployment/do/mcc-isp-device-provisioning.md | 4 ++-- windows/deployment/do/mcc-isp-monitor.md | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/windows/deployment/do/mcc-isp-device-provisioning.md b/windows/deployment/do/mcc-isp-device-provisioning.md index 5594fd6b87..f9d680f920 100644 --- a/windows/deployment/do/mcc-isp-device-provisioning.md +++ b/windows/deployment/do/mcc-isp-device-provisioning.md @@ -22,7 +22,7 @@ The device provisioning script takes the input of different IDs outlined below t #### IoT Central -IoT Central is the main hub that handles all messaging and requests from IoT Edge devices. To learn more about the interaction between IoT Edge and IoT Central, view [IoT Central](https://docs.microsoft.com/en-us/azure/iot-central/core/concepts-iot-edge) documentation. +IoT Central is the main hub that handles all messaging and requests from IoT Edge devices. To learn more about the interaction between IoT Edge and IoT Central, review the [IoT Central](/azure/iot-central/core/concepts-iot-edge) documentation. #### IoT Edge @@ -41,7 +41,7 @@ There are five IDs that the device provisioning script takes as input in order t | -- | --- | | Customer ID | The Azure subscription ID that the cache node is created in. | | Cache node ID | The unique alphanumeric ID of the cache node being provisioned. | -| Customer key | | +| Customer Key | | | Cache node name | The name of the cache node. | | Tenant ID | The unique ID associated with the Azure account. | diff --git a/windows/deployment/do/mcc-isp-monitor.md b/windows/deployment/do/mcc-isp-monitor.md index 98856bff58..e1b2b8c121 100644 --- a/windows/deployment/do/mcc-isp-monitor.md +++ b/windows/deployment/do/mcc-isp-monitor.md @@ -32,14 +32,15 @@ Within Azure portal, you're able to build your custom charts and graphs using th | **Average in**| The average egress (in Gbps) of inbound traffic| | **Average out**| The average egress (in Gbps) of outbound traffic| -To learn more about how to build your custom charts and graphs, visit [Azure Monitor](https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/data-platform-metrics) for details. +To learn more about how to build your custom charts and graphs, visit [Azure Monitor](/azure/azure-monitor/essentials/data-platform-metrics) for details. ### Monitoring your metrics + To view the metrics associated with your cache nodes, navigate to the Overview >> Monitoring tab within Azure portal. :::image type="content" source="images/mcc-isp-metrics.png" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: -You can choose to monitor the health and performance of all cache nodes or one by one by using the dropdown menu. The Egress bits per second graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. +You can choose to monitor the health and performance of all cache nodes or one at a time by using the dropdown menu. The Egress bits per second graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. If you're unable to view metrics for your cache node, it may be that your cache node is unhealthy, inactive, or hasn't been fully configured. From 79c0575d2da310f52908ac28491fed15d05da349 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 11 Oct 2022 15:48:14 -0700 Subject: [PATCH 06/15] build report info --- .../deployment/do/mcc-enterprise-appendix.md | 2 +- .../deployment/do/mcc-enterprise-overview.md | 2 +- .../do/mcc-enterprise-update-uninstall.md | 16 ++-- windows/deployment/do/mcc-isp-monitor.md | 4 +- .../deployment/do/mcc-isp-provision-deploy.md | 78 ++++++------------- windows/deployment/do/mcc-isp-signup.md | 29 +++---- windows/deployment/do/mcc-isp-support.md | 18 ++--- windows/deployment/do/mcc-isp-uninstall.md | 6 +- .../do/mcc-isp-verify-cache-node.md | 10 +-- 9 files changed, 68 insertions(+), 97 deletions(-) diff --git a/windows/deployment/do/mcc-enterprise-appendix.md b/windows/deployment/do/mcc-enterprise-appendix.md index 0da8b56b15..87e7346429 100644 --- a/windows/deployment/do/mcc-enterprise-appendix.md +++ b/windows/deployment/do/mcc-enterprise-appendix.md @@ -5,7 +5,7 @@ description: Appendix on Microsoft Connected Cache (MCC) for Enterprise and Educ ms.prod: w10 author: amymzhou ms.localizationpriority: medium -ms.author: amymzhou +ms.author: amyzhou ms.collection: M365-modern-desktop ms.topic: article --- diff --git a/windows/deployment/do/mcc-enterprise-overview.md b/windows/deployment/do/mcc-enterprise-overview.md index a1d3102da1..8493fd2586 100644 --- a/windows/deployment/do/mcc-enterprise-overview.md +++ b/windows/deployment/do/mcc-enterprise-overview.md @@ -5,7 +5,7 @@ description: Overview and requirements of Microsoft Connected Cache (MCC) for En ms.prod: w10 author: amymzhou ms.localizationpriority: medium -ms.author: amymzhou +ms.author: amyzhou ms.collection: M365-modern-desktop ms.topic: article --- diff --git a/windows/deployment/do/mcc-enterprise-update-uninstall.md b/windows/deployment/do/mcc-enterprise-update-uninstall.md index 8fcaea70c5..69762a115d 100644 --- a/windows/deployment/do/mcc-enterprise-update-uninstall.md +++ b/windows/deployment/do/mcc-enterprise-update-uninstall.md @@ -5,7 +5,7 @@ description: Details on updating or uninstalling Microsoft Connected Cache (MCC) ms.prod: w10 author: amymzhou ms.localizationpriority: medium -ms.author: amymzhou +ms.author: amyzhou ms.collection: M365-modern-desktop ms.topic: article --- @@ -14,7 +14,7 @@ ms.topic: article ## Update MCC -Throughout the private preview phase, we will send you security and feature updates for MCC. Please follow these steps to perform the update. +Throughout the preview phase, we'll send you security and feature updates for MCC. Follow these steps to perform the update. Run the following command with the **arguments** we provided in the email to update your MCC: @@ -34,12 +34,12 @@ issues. This script will remove the following: 1. EFLOW + Linux VM -2. IoT Edge -3. Edge Agent -4. Edge Hub -5. MCC -6. Moby CLI -7. Moby Engine +1. IoT Edge +1. Edge Agent +1. Edge Hub +1. MCC +1. Moby CLI +1. Moby Engine To delete MCC, go to Control Panel \> Uninstall a program \> Select Azure IoT Edge LTS \> Uninstall \ No newline at end of file diff --git a/windows/deployment/do/mcc-isp-monitor.md b/windows/deployment/do/mcc-isp-monitor.md index e1b2b8c121..b44178b622 100644 --- a/windows/deployment/do/mcc-isp-monitor.md +++ b/windows/deployment/do/mcc-isp-monitor.md @@ -36,9 +36,9 @@ To learn more about how to build your custom charts and graphs, visit [Azure Mon ### Monitoring your metrics -To view the metrics associated with your cache nodes, navigate to the Overview >> Monitoring tab within Azure portal. +To view the metrics associated with your cache nodes, navigate to the **Overview** > **Monitoring** tab within Azure portal. -:::image type="content" source="images/mcc-isp-metrics.png" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: +:::image type="content" source="./images/mcc-img-metrics.png" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: You can choose to monitor the health and performance of all cache nodes or one at a time by using the dropdown menu. The Egress bits per second graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. diff --git a/windows/deployment/do/mcc-isp-provision-deploy.md b/windows/deployment/do/mcc-isp-provision-deploy.md index 31d181efc1..4df4cf6e4b 100644 --- a/windows/deployment/do/mcc-isp-provision-deploy.md +++ b/windows/deployment/do/mcc-isp-provision-deploy.md @@ -18,83 +18,53 @@ ms.topic: article **Applies to** -- Windows 10 +- Windows 10 - Windows 11 -
- - > [!IMPORTANT] -> Before you can create your Microsoft Connected Cache, you will need to complete the sign up process [here](windows\deployment\do\mcc-isp-signup.md). +> Before you can create your Microsoft Connected Cache, you will need to complete the [sign up process](mcc-isp-signup.md). -
-
+# Create a cache node +1. Navigating to **Cache nodes** under **Settings**. +1. Select **Create Cache Node**. +1. Provide a name for your cache node +1. Select **Create** to create your cache node. +## Provision your cache node -Create your cache node by navigating to 'Cache nodes' under Settings and click 'Create Cache Node'. Provide a name for your cache node and click 'Create' to create your cache node. +1. Select the cache node you want to provision and deploy. -
+ :::image type="content" source="./images/numberedprovmcc.png" alt-text="Screenshot of the Settings tab in the Cache nodes page."::: -
+1. Enter the max allowable egress that your hardware can support. -### Provision your cache node: -
+1. Under Cache storage, specify the location of the cache drives to store content along with the size of the cache drives in Gigabytes. + > [!NOTE] + > You can add up to nine cache drives. -1. Click on the cache node you want to provision and deploy. -
+1. Under Routing information, select the routing source you would like to use. For more information, see [client routing](mcc-isp-client-routing.md). -
-:::image type="content" source="images/numberedprovmcc.png" alt-text="numberedprovmcc"::: + - If you choose **Manual** routing, enter Address range/CIDR blocks and the number of IP space. + - If you choose **BGP** routing, enter the ASN and IP addresses of the neighborship. + > [!Note] + > **Prefix count** and **IP Space** will stop showing 0 when BGP is successfully established. -
- -2. Enter the max allowable egress that your hardware can support. - -
- -3. Under Cache storage, specify the location of the cache drives to store content along with the size of the cache drives in Gigabytes. -Note: You can add upto nine cache drives. - -
- -4. Under Routing information, select the routing source you would like to use. For more information see client routing [here](windows\deployment\do\mcc-isp-client-routing.md). -
- -- If you choose Manual routing, enter Address range/CIDR blocks and the number of IP space. -
-- If you choose BGP routing, enter the ASN and IP addresses of the neighborship. -Note: 'Prefix count' and 'IP Space' will stop showing 0 when BGP is successfuly established. - -
-
- -### Deploy your cache node: +## Deploy your cache node -:::image type="content" source="images/numbereddeploymcc.png" alt-text="numbereddeploymcc"::: +:::image type="content" source="./images/numbereddeploymcc.png" alt-text="Screenshot of the Azure portal showing the Server provisioning tab."::: -
-5. Under Server provisioning, download the provisioning package to your server. +1. Under **Server provisioning**, download the provisioning package to your server. Open a terminal window and run the following command to change the access permission to the Bash script. -
```bash sudo chmod +x installmcc.sh ``` -
- -6. Run the provisioning script that is shown for your cache node. +1. Run the provisioning script that is shown in the Azure portal for your cache node. -
-
+1. If there were no errors, you've set up your cache node. To verify the server is set up correctly, follow the [verification steps](mcc-isp-verify-cache-node.md). -<<<<<<< HEAD -If there were no errors, you have set up your cache node. To verify the server is set up correctly, follow the steps verification steps [here](windows\deployment\do\mcc-isp-verify-cache-node.md). -======= -8. If there were no errors, you have set up your cache node. To verify the server is set up correctly, follow the steps verification steps [here](windows\deployment\do\mcc-isp-verify-cache-node.md). - ->>>>>>> c023d7d15cf06494a2799bdfb23d7674fa5fbb05 diff --git a/windows/deployment/do/mcc-isp-signup.md b/windows/deployment/do/mcc-isp-signup.md index c92fad64da..5e2906b282 100644 --- a/windows/deployment/do/mcc-isp-signup.md +++ b/windows/deployment/do/mcc-isp-signup.md @@ -17,43 +17,44 @@ ms.topic: article **Applies to** -- Windows 10 +- Windows 10 - Windows 11 This article details the process of signing up for Microsoft Connected Cache for Internet Service Providers (Public Preview). ## Resource creation and sign up process -1. Navigate to your [Azure portal](https://www.portal.azure.com). In the top search bar, search for **Microsoft Connected Cache**. +1. Navigate to the [Azure portal](https://www.portal.azure.com). In the top search bar, search for **Microsoft Connected Cache**. -:::image type="content" source="images/searchmcc.png" alt-text="Screenshot of the Azure portal which shows the Microsoft Connected Cache resource in Azure marketplace."::: +:::image type="content" source="./images/searchmcc.png" alt-text="Screenshot of the Azure portal that shows the Microsoft Connected Cache resource in Azure marketplace."::: 1. Select **Create** to create a **Microsoft Connected Cache**. When prompted, enter a name for your cache resource. -> [!IMPORTANT] -> After your resource has been created, we need some information to verify your network operator status and approve you to host Microsoft Connected Cache nodes. Please ensure that your [Peering DB](https://www.peeringdb.com/) organization information is up to date as this information will be used for verification. The NOC contact email will be used to send verification information. + > [!IMPORTANT] + > After your resource has been created, we need some information to verify your network operator status and approve you to host Microsoft Connected Cache nodes. Please ensure that your [Peering DB](https://www.peeringdb.com/) organization information is up to date as this information will be used for verification. The NOC contact email will be used to send verification information. -1. Navigate to **Settings** > **Sign up**. Enter your organization ASN. Indicate whether you are a transit provider. If so, additionally, please include any ASN(s) for downstream network operators that you may transit traffic for. +1. Navigate to **Settings** > **Sign up**. Enter your organization ASN. Indicate whether you're a transit provider. If so, additionally, include any ASN(s) for downstream network operators that you may transit traffic for. -:::image type="content" source="images/signup1.png" alt-text="Screenshot of the sign up page in the Microsoft Connected Cache resource page in Azure portal."::: + :::image type="content" source="./images/signup1.png" alt-text="Screenshot of the sign up page in the Microsoft Connected Cache resource page in Azure portal."::: 1. Once we verify the information entered, a verification code will be sent to the NOC email address provided on [Peering DB](https://www.peeringdb.com/). Once you receive the email, navigate to your Azure portal > **Microsoft Connected Cache** > **Settings** > **Verify operator**, and enter the verification code sent to the NOC email address. -**Note:** Verification codes expire in 24 hours. You will need to generate a new code if it expires. + > [!NOTE] + > Verification codes expire in 24 hours. You will need to generate a new code if it expires. -:::image type="content" source="images/verification.png" alt-text="Screenshot of the signup verification page on Azure portal for Microsoft Connected Cache."::: + :::image type="content" source="images/verification.png" alt-text="Screenshot of the sign up verification page on Azure portal for Microsoft Connected Cache."::: -Once verified, follow the instructions on [Create, provision, and deploy cache node](windows\deployment\do\mcc-isp-create-provision-deploy.md) to create your cache node. +1. Once verified, follow the instructions in [Create, provision, and deploy cache node](mcc-isp-create-provision-deploy.md) to create your cache node. ## Traffic estimation -During the sign-up process, Microsoft will provide you with a traffic estimation based on your ASN(s). We make estimations based on our predictions on historical data about Microsoft content download volume. We'll use these estimations to recommend hardware or VM configurations. You can view these recommendations within the Azure portal. +During the sign-up process, Microsoft will provide you with a traffic estimation based on your ASN(s). We make estimations based on our predictions on historical data about Microsoft content download volume. We'll use these estimations to recommend hardware or VM configurations. You can review these recommendations within the Azure portal. We make these estimations based on the Microsoft content types that Microsoft Connected Cache serves. To learn more about the types of content that are supported, see [Delivery Optimization and Microsoft Connected Cache content type endpoints](delivery-optimization-endpoints.md). ### Cache performance -To make sure you're maximizing the performance of your cache node, note the following: +To make sure you're maximizing the performance of your cache node, review the following information: #### OS requirements @@ -61,7 +62,7 @@ The Microsoft Connected Cache module is optimized for Ubuntu 20.04 LTS. Install #### NIC requirements -- Multiple NICs on a single MCC instance are supported using a _link aggregated_ configuration. +- Multiple NICs on a single MCC instance are supported using a *link aggregated* configuration. - 10 Gbps NIC is the minimum speed recommended, but any NIC is supported. #### Drive performance @@ -76,7 +77,7 @@ There are many hardware configurations that suit Microsoft Connected Cache. As a **Dell PowerEdge R330** -- 2 x Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40 GHz , total 32 core +- 2 x Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40 GHz, total 32 core - 48 GB, Micron Technology 18ASF1G72PDZ-2G1A1, Speed: 2133 MT/s - 4 - Transcend SSD230s 1 TB SATA Drives - Intel Corporation Ethernet 10G 2P X520 Adapter (Link Aggregated) diff --git a/windows/deployment/do/mcc-isp-support.md b/windows/deployment/do/mcc-isp-support.md index 6c99f12c9c..eca0816a9e 100644 --- a/windows/deployment/do/mcc-isp-support.md +++ b/windows/deployment/do/mcc-isp-support.md @@ -17,30 +17,30 @@ ms.topic: article **Applies to** -- Windows 10 +- Windows 10 - Windows 11 ## Sign up errors -#### Cannot verify account +### Cannot verify account During sign-up, we verify the information you provide against what is present in [Peering DB](https://www.peeringdb.com/). Make sure the information for your ISP entry on [Peering DB](https://www.peeringdb.com/) is up to date and matches what you provide during sign-up. -#### Invalid verification code +### Invalid verification code -During sign-up, a verification code is sent to your NOC email address present in [Peering DB](https://www.peeringdb.com/). This code expires in 24 hours. If expired, you'll need to request a new verification code to complete sign up. +During sign-up, a verification code is sent to your NOC email address present in [Peering DB](https://www.peeringdb.com/). This code expires in 24 hours. If expired, you'll need to request a new verification code to complete the sign-up. ## Cache Node Errors -#### Cannot find my cache node - +### Cannot find my cache node + Did you previously had access to your cache nodes but it's now no longer accessible? If so, it may be because you had a trial subscription, and its trial period ended. To resolve this issue, complete the following two steps: 1. Create a new Azure Pay-As-You-Go subscription 1. Recreate the cache nodes using the new subscription -#### Recommended Documents +### Recommended Documents [Steps to obtain Azure subscription](https://aka.ms/MCC-Azure-Subscription) -[Pay-as-you-go-subscription](https://azure.microsoft.com/en-us/offers/ms-azr-0003p/) -[Azure free account FAQs](https://azure.microsoft.com/en-us/free/free-account-faq/) \ No newline at end of file +[Pay-as-you-go-subscription](https://azure.microsoft.com/offers/ms-azr-0003p/) +[Azure free account FAQs](https://azure.microsoft.com/free/free-account-faq/) diff --git a/windows/deployment/do/mcc-isp-uninstall.md b/windows/deployment/do/mcc-isp-uninstall.md index 889ea153e3..f34b3a6365 100644 --- a/windows/deployment/do/mcc-isp-uninstall.md +++ b/windows/deployment/do/mcc-isp-uninstall.md @@ -17,9 +17,8 @@ ms.topic: article There are two main steps required to uninstall your cache node: - -1. Remove your cache node from Azure portal -1. Run the uninstall script to cleanly remove MCC from your server +1. Remove your cache node from Azure portal. +1. Run the uninstall script to cleanly remove MCC from your server. ## Remove your cache node from Azure portal @@ -27,6 +26,7 @@ There are two main steps required to uninstall your cache node: Within Azure portal, navigate to **Cache Nodes**, then select the cache node you wish to delete. Once selected, select **Delete** on the top bar to remove this cache node from your account. ## Run the uninstall script to cleanly remove MCC from your server + In the installer zip file, you'll find the file **uninstallmcc.sh**. This script uninstalls MCC and all the related components. Only run it if you're facing issues with MCC installation. The **uninstallmcc.sh** script removes the following components: diff --git a/windows/deployment/do/mcc-isp-verify-cache-node.md b/windows/deployment/do/mcc-isp-verify-cache-node.md index e80f816a68..55811c97d3 100644 --- a/windows/deployment/do/mcc-isp-verify-cache-node.md +++ b/windows/deployment/do/mcc-isp-verify-cache-node.md @@ -49,7 +49,7 @@ Similarly, enter the following URL into a web browser on any device on the netwo http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com ``` -If the test fails, for more information, see the [FAQs](#mcc-isp-faq) section. +If the test fails, for more information, see the [FAQ](mcc-isp-faq.yml) article. ## Monitor cache node health and performance @@ -69,14 +69,14 @@ Within Azure portal, you're able to build your custom charts and graphs using th | **Average in**| The average egress (in Gbps) of inbound traffic| | **Average out**| The average egress (in Gbps) of outbound traffic| -To learn more about how to build your custom charts and graphs, visit [Azure Monitor](https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/data-platform-metrics) for details. +For more information about how to build your custom charts and graphs, see [Azure Monitor](/azure/azure-monitor/essentials/data-platform-metrics). ### Monitoring your metrics -To view the metrics associated with your cache nodes, navigate to the Overview >> Monitoring tab within Azure portal. +To view the metrics associated with your cache nodes, navigate to the **Overview** > **Monitoring** tab within the Azure portal. -:::image type="content" source="images/mcc-img-metrics.PNG" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: +:::image type="content" source="./images/mcc-img-metrics.png" alt-text="Screenshot of the Azure portal displaying the metrics view in the Overview tab"::: -You can choose to monitor the health and performance of all cache nodes or one by one by using the dropdown menu. The **Egress bits per second** graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. +You can choose to monitor the health and performance of all cache nodes or one at a time by using the dropdown menu. The **Egress bits per second** graph shows your inbound and outbound traffic of your cache nodes over time. You can change the time range (1 hour, 12 hours, 1 day, 7 days, 14 days, and 30 days) by selecting the time range of choice on the top bar. If you're unable to view metrics for your cache node, it may be that your cache node is unhealthy, inactive, or hasn't been fully configured. From 7de316a7b52b64ef7849b5ad199835c3ba1fe8bf Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 11 Oct 2022 15:50:48 -0700 Subject: [PATCH 07/15] build report info --- windows/deployment/do/mcc-isp-provision-deploy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-isp-provision-deploy.md b/windows/deployment/do/mcc-isp-provision-deploy.md index 4df4cf6e4b..645497b6ae 100644 --- a/windows/deployment/do/mcc-isp-provision-deploy.md +++ b/windows/deployment/do/mcc-isp-provision-deploy.md @@ -24,7 +24,7 @@ ms.topic: article > [!IMPORTANT] > Before you can create your Microsoft Connected Cache, you will need to complete the [sign up process](mcc-isp-signup.md). -# Create a cache node +## Create a cache node 1. Navigating to **Cache nodes** under **Settings**. 1. Select **Create Cache Node**. From 891adfb7a94636bd603a5bb4832cfe45839f1c78 Mon Sep 17 00:00:00 2001 From: Andy Rivas <45184653+andyrivMSFT@users.noreply.github.com> Date: Wed, 12 Oct 2022 14:49:13 -0700 Subject: [PATCH 08/15] Update mcc-isp-signup.md Not possible to egress 100% of any NIC. --- windows/deployment/do/mcc-isp-signup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-isp-signup.md b/windows/deployment/do/mcc-isp-signup.md index 5e2906b282..45dbef66b6 100644 --- a/windows/deployment/do/mcc-isp-signup.md +++ b/windows/deployment/do/mcc-isp-signup.md @@ -73,7 +73,7 @@ RAID disk configurations are discouraged as cache performance will be impacted. ### Hardware configuration example -There are many hardware configurations that suit Microsoft Connected Cache. As an example, below is the hardware configuration of a customer who is able to egress 40 Gbps of traffic. +There are many hardware configurations that suit Microsoft Connected Cache. As an example, below is the hardware configuration of a customer who is able to egress about 35 Gbps of traffic. **Dell PowerEdge R330** From 070c73c78d9ff8955d44ea0c7d03c725aad25b04 Mon Sep 17 00:00:00 2001 From: Andy Rivas <45184653+andyrivMSFT@users.noreply.github.com> Date: Wed, 12 Oct 2022 15:01:31 -0700 Subject: [PATCH 09/15] Update mcc-isp-signup.md Made another small phrase change for the peak egress estimation. --- windows/deployment/do/mcc-isp-signup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-isp-signup.md b/windows/deployment/do/mcc-isp-signup.md index 45dbef66b6..a61d206e84 100644 --- a/windows/deployment/do/mcc-isp-signup.md +++ b/windows/deployment/do/mcc-isp-signup.md @@ -73,7 +73,7 @@ RAID disk configurations are discouraged as cache performance will be impacted. ### Hardware configuration example -There are many hardware configurations that suit Microsoft Connected Cache. As an example, below is the hardware configuration of a customer who is able to egress about 35 Gbps of traffic. +There are many hardware configurations that suit Microsoft Connected Cache. As an example, a customer has deployed the following hardware configuration and is able achieve a peak egress of about 35 Gbps: **Dell PowerEdge R330** From a50b2d2381d95a55dea892310e7b15f33f87eb11 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 13 Oct 2022 09:12:02 -0700 Subject: [PATCH 10/15] ren png --- ...nt-mcc-delivery-optimization-activity.png} | Bin ...nt-mcc-get-deliveryoptimizationstatus.png} | Bin ....png => ent-mcc-group-policy-hostname.png} | Bin ...png => ent-mcc-store-example-download.png} | Bin .../deployment/do/mcc-enterprise-appendix.md | 72 +++++++++--------- 5 files changed, 38 insertions(+), 34 deletions(-) rename windows/deployment/do/images/{emcc29.png => ent-mcc-delivery-optimization-activity.png} (100%) rename windows/deployment/do/images/{emcc28.png => ent-mcc-get-deliveryoptimizationstatus.png} (100%) rename windows/deployment/do/images/{emcc26.png => ent-mcc-group-policy-hostname.png} (100%) rename windows/deployment/do/images/{emcc27.png => ent-mcc-store-example-download.png} (100%) diff --git a/windows/deployment/do/images/emcc29.png b/windows/deployment/do/images/ent-mcc-delivery-optimization-activity.png similarity index 100% rename from windows/deployment/do/images/emcc29.png rename to windows/deployment/do/images/ent-mcc-delivery-optimization-activity.png diff --git a/windows/deployment/do/images/emcc28.png b/windows/deployment/do/images/ent-mcc-get-deliveryoptimizationstatus.png similarity index 100% rename from windows/deployment/do/images/emcc28.png rename to windows/deployment/do/images/ent-mcc-get-deliveryoptimizationstatus.png diff --git a/windows/deployment/do/images/emcc26.png b/windows/deployment/do/images/ent-mcc-group-policy-hostname.png similarity index 100% rename from windows/deployment/do/images/emcc26.png rename to windows/deployment/do/images/ent-mcc-group-policy-hostname.png diff --git a/windows/deployment/do/images/emcc27.png b/windows/deployment/do/images/ent-mcc-store-example-download.png similarity index 100% rename from windows/deployment/do/images/emcc27.png rename to windows/deployment/do/images/ent-mcc-store-example-download.png diff --git a/windows/deployment/do/mcc-enterprise-appendix.md b/windows/deployment/do/mcc-enterprise-appendix.md index 87e7346429..74ad076f83 100644 --- a/windows/deployment/do/mcc-enterprise-appendix.md +++ b/windows/deployment/do/mcc-enterprise-appendix.md @@ -18,20 +18,20 @@ If you're having issues with your MCC, we included a diagnostics script which wi To run this script: -1. Navigate to the following folder in the MCC installation files: +1. Navigate to the following folder in the MCC installation files: - mccinstaller \> Eflow \> Diagnostics + mccinstaller > Eflow > Diagnostics -2. Run the following commands: +1. Run the following commands: -```powershell -Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -.\collectMccDiagnostics.ps1 -``` + ```powershell + Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process + .\collectMccDiagnostics.ps1 + ``` -3. The script stores all the debug files into a folder and then creates a tar file. After the script is finished running, it will output the path of the tar file which you can share with us (should be “**\**\\mccdiagnostics\\support_bundle_\$timestamp.tar.gz”) +1. The script stores all the debug files into a folder and then creates a tar file. After the script is finished running, it will output the path of the tar file which you can share with us. The location should be **\**\mccdiagnostics\support_bundle_\$timestamp.tar.gz -4. [Email the MCC team](mailto:mccforenterprise@microsoft.com?subject=Debugging%20Help%20Needed%20for%20MCC%20for%20Enterprise) and attach this file asking for debugging support. Screenshots of the error along with any other warnings you saw will be helpful during out debugging process. +1. [Email the MCC team](mailto:mccforenterprise@microsoft.com?subject=Debugging%20Help%20Needed%20for%20MCC%20for%20Enterprise) and attach this file asking for debugging support. Screenshots of the error along with any other warnings you saw will be helpful during out debugging process. ## Steps to obtain an Azure Subscription ID @@ -44,7 +44,7 @@ Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process ## Troubleshooting -If you’re not able to sign up for a Microsoft Azure subscription with the error: **Account belongs to a directory that cannot be associated with an Azure subscription. Please sign in with a different account.** See [Can't sign up for a Microsoft Azure subscription](/troubleshoot/azure/general/cannot-sign-up-subscription). +If you're not able to sign up for a Microsoft Azure subscription with the error: **Account belongs to a directory that cannot be associated with an Azure subscription. Please sign in with a different account.** See [Can't sign up for a Microsoft Azure subscription](/troubleshoot/azure/general/cannot-sign-up-subscription). Also see [Troubleshoot issues when you sign up for a new account in the Azure portal](/azure/cost-management-billing/manage/troubleshoot-azure-sign-up). @@ -54,11 +54,11 @@ The Azure IoT Edge runtime enables custom and cloud logic on IoT Edge devices. The runtime sits on the IoT Edge device, and performs management and communication operations. The runtime performs several functions: -- Installs and update workloads (Docker containers) on the device. -- Maintains Azure IoT Edge security standards on the device. -- Ensures that IoT Edge modules (Docker containers) are always running. -- Reports module (Docker containers) health to the cloud for remote monitoring. -- Manages communication between an IoT Edge device and the cloud. +- Installs and update workloads (Docker containers) on the device. +- Maintains Azure IoT Edge security standards on the device. +- Ensures that IoT Edge modules (Docker containers) are always running. +- Reports module (Docker containers) health to the cloud for remote monitoring. +- Manages communication between an IoT Edge device and the cloud. For more information on Azure IoT Edge, please see the [Azure IoT Edge documentation](/azure/iot-edge/about-iot-edge). @@ -80,43 +80,47 @@ There are multiple methods that can be used to apply a policy to PCs that should You can either set your MCC IP address or FQDN using: -1. Registry Key in 1709 and higher - - [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization]
+1. Registry Key (version 1709 and later): + `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization` +
"DOCacheHost"=" " - From an elevated command prompt: + From an elevated command prompt: - ``` - reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization" /v DOCacheHost /t REG_SZ /d "10.137.187.38" /f - ``` + ``` + reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization" /v DOCacheHost /t REG_SZ /d "10.137.187.38" /f + ``` -2. MDM Path in 1809 or higher: +1. MDM Path (version 1809 and later): - .Vendor/MSFT/Policy/Config/DeliveryOptimization/DOCacheHost + `.Vendor/MSFT/Policy/Config/DeliveryOptimization/DOCacheHost` -3. In Windows release version 1809 and later, you can apply the policy via Group Policy Editor. The policy to apply is **DOCacheHost**. To configure the clients to pull content from the MCC using Group Policy, set the Cache Server Hostname (Setting found under Computer Configuration, Administrative Templates, Windows Components, Delivery Optimization) to the IP address of your MCC. For example 10.137.187.38. +1. In Windows (release version 1809 and later), you can apply the policy via Group Policy Editor. The policy to apply is **DOCacheHost**. To configure the clients to pull content from the MCC using Group Policy, go to **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Delivery Optimization**. Set the **Cache Server Hostname** to the IP address of your MCC, such as `10.137.187.38`. + + :::image type="content" source="./images/ent-mcc-group-policy-hostname.png" alt-text="Screenshot of the Group Policy editor showing the Cache Server Hostname Group Policy setting."::: - ![eMCC img26](images/emcc26.png) **Verify Content using the DO Client** To verify that the Delivery Optimization client can download content using MCC, you can use the following steps: -1. Download a game or application from the Microsoft Store. +1. Download a game or application from the Microsoft Store. - ![eMCC img27](images/emcc27.png) + :::image type="content" source="./images/ent-mcc-store-example-download.png" alt-text="Screenshot of the Microsoft Store with the game, Angry Birds 2, selected."::: -2. Verify downloads came from MCC by one of two methods: - - Using PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see BytesFromCacheServer test +1. Verify downloads came from MCC by one of two methods: - ![eMCC img28](images/emcc28.png) + - Using the PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see *BytesFromCacheServer*. - - Looking at the Delivery Optimization Activity Monitor + :::image type="content" source="./images/ent-mcc-get-deliveryoptimizationstatus.png" alt-text="Screenshot of the output of Get-DeliveryOptimization | FT from PowerShell."::: - ![eMCC img29](images/emcc29.png) + - Using the Delivery Optimization Activity Monitor + + :::image type="content" source="./images/ent-mcc-delivery-optimization-activity.png" alt-text="Screenshot of the Delivery Optimization Activity Monitor."::: -### Also see -[Microsoft Connected Cache for ISPs](mcc-isp.md)
+### More information + +[Microsoft Connected Cache for ISPs](mcc-isp.md)
[Introducing Microsoft Connected Cache](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/introducing-microsoft-connected-cache-microsoft-s-cloud-managed/ba-p/963898) From 352591722adf0f4727c14c737be2350893314165 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 13 Oct 2022 14:36:15 -0700 Subject: [PATCH 11/15] markdown and image edits --- windows/deployment/do/images/emcc07.png | Bin 29012 -> 0 bytes ...06.png => ent-mcc-azure-cache-created.png} | Bin ... ent-mcc-azure-create-connected-cache.png} | Bin ...cc04.png => ent-mcc-azure-marketplace.png} | Bin ...03.png => ent-mcc-azure-search-result.png} | Bin .../{emcc08.png => ent-mcc-cache-nodes.png} | Bin ....png => ent-mcc-create-azure-resource.png} | Bin .../do/images/ent-mcc-create-cache-failed.png | Bin 0 -> 27942 bytes ...png => ent-mcc-create-cache-node-name.png} | Bin ...cc09.png => ent-mcc-create-cache-node.png} | Bin .../deployment/do/mcc-enterprise-appendix.md | 5 +- .../deployment/do/mcc-enterprise-deploy.md | 116 +++++++++--------- windows/deployment/do/mcc-enterprise.md | 69 ++++++----- 13 files changed, 94 insertions(+), 96 deletions(-) delete mode 100644 windows/deployment/do/images/emcc07.png rename windows/deployment/do/images/{emcc06.png => ent-mcc-azure-cache-created.png} (100%) rename windows/deployment/do/images/{emcc05.png => ent-mcc-azure-create-connected-cache.png} (100%) rename windows/deployment/do/images/{emcc04.png => ent-mcc-azure-marketplace.png} (100%) rename windows/deployment/do/images/{emcc03.png => ent-mcc-azure-search-result.png} (100%) rename windows/deployment/do/images/{emcc08.png => ent-mcc-cache-nodes.png} (100%) rename windows/deployment/do/images/{emcc02.png => ent-mcc-create-azure-resource.png} (100%) create mode 100644 windows/deployment/do/images/ent-mcc-create-cache-failed.png rename windows/deployment/do/images/{emcc09.5.png => ent-mcc-create-cache-node-name.png} (100%) rename windows/deployment/do/images/{emcc09.png => ent-mcc-create-cache-node.png} (100%) diff --git a/windows/deployment/do/images/emcc07.png b/windows/deployment/do/images/emcc07.png deleted file mode 100644 index 21420eab091561e02305280d90ae35d0282a4bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29012 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 Yn>CsrqJ5fK+lI~HzUjSc?FZ5S4RhiE{r~^~ diff --git a/windows/deployment/do/images/emcc06.png b/windows/deployment/do/images/ent-mcc-azure-cache-created.png similarity index 100% rename from windows/deployment/do/images/emcc06.png rename to windows/deployment/do/images/ent-mcc-azure-cache-created.png diff --git a/windows/deployment/do/images/emcc05.png b/windows/deployment/do/images/ent-mcc-azure-create-connected-cache.png similarity index 100% rename from windows/deployment/do/images/emcc05.png rename to windows/deployment/do/images/ent-mcc-azure-create-connected-cache.png diff --git a/windows/deployment/do/images/emcc04.png b/windows/deployment/do/images/ent-mcc-azure-marketplace.png similarity index 100% rename from windows/deployment/do/images/emcc04.png rename to windows/deployment/do/images/ent-mcc-azure-marketplace.png diff --git a/windows/deployment/do/images/emcc03.png b/windows/deployment/do/images/ent-mcc-azure-search-result.png similarity index 100% rename from windows/deployment/do/images/emcc03.png rename to windows/deployment/do/images/ent-mcc-azure-search-result.png diff --git a/windows/deployment/do/images/emcc08.png b/windows/deployment/do/images/ent-mcc-cache-nodes.png similarity index 100% rename from windows/deployment/do/images/emcc08.png rename to windows/deployment/do/images/ent-mcc-cache-nodes.png diff --git a/windows/deployment/do/images/emcc02.png b/windows/deployment/do/images/ent-mcc-create-azure-resource.png similarity index 100% rename from windows/deployment/do/images/emcc02.png rename to windows/deployment/do/images/ent-mcc-create-azure-resource.png diff --git a/windows/deployment/do/images/ent-mcc-create-cache-failed.png b/windows/deployment/do/images/ent-mcc-create-cache-failed.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2ac09d56aca39e84a2e2f6d598e9774f02ee58 GIT binary patch literal 27942 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 Qribb2W1UCE4_^fS7x^);7ytkO literal 0 HcmV?d00001 diff --git a/windows/deployment/do/images/emcc09.5.png b/windows/deployment/do/images/ent-mcc-create-cache-node-name.png similarity index 100% rename from windows/deployment/do/images/emcc09.5.png rename to windows/deployment/do/images/ent-mcc-create-cache-node-name.png diff --git a/windows/deployment/do/images/emcc09.png b/windows/deployment/do/images/ent-mcc-create-cache-node.png similarity index 100% rename from windows/deployment/do/images/emcc09.png rename to windows/deployment/do/images/ent-mcc-create-cache-node.png diff --git a/windows/deployment/do/mcc-enterprise-appendix.md b/windows/deployment/do/mcc-enterprise-appendix.md index 74ad076f83..bdf9f3948e 100644 --- a/windows/deployment/do/mcc-enterprise-appendix.md +++ b/windows/deployment/do/mcc-enterprise-appendix.md @@ -111,7 +111,7 @@ To verify that the Delivery Optimization client can download content using MCC, 1. Verify downloads came from MCC by one of two methods: - - Using the PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see *BytesFromCacheServer*. + - Using the PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see *BytesFromCacheServer*. :::image type="content" source="./images/ent-mcc-get-deliveryoptimizationstatus.png" alt-text="Screenshot of the output of Get-DeliveryOptimization | FT from PowerShell."::: @@ -119,8 +119,7 @@ To verify that the Delivery Optimization client can download content using MCC, :::image type="content" source="./images/ent-mcc-delivery-optimization-activity.png" alt-text="Screenshot of the Delivery Optimization Activity Monitor."::: - -### More information +## More information [Microsoft Connected Cache for ISPs](mcc-isp.md)
[Introducing Microsoft Connected Cache](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/introducing-microsoft-connected-cache-microsoft-s-cloud-managed/ba-p/963898) diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md index 98aa3cb0ec..04dc145851 100644 --- a/windows/deployment/do/mcc-enterprise-deploy.md +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -14,7 +14,7 @@ ms.topic: article **Applies to** -- Windows 10 +- Windows 10 - Windows 11 ## Steps to deploy MCC @@ -46,69 +46,67 @@ The MCC Azure management portal is used to create and manage MCC nodes. An Azure Once you take the survey above and the MCC team adds your subscription ID to the allowlist, you'll be given a link to the Azure portal where you can create the resource described below. -1. On the Azure portal home page, choose **Create a resource**: - ![eMCC img02](images/emcc02.png) +1. In the Azure portal home page, choose **Create a resource**: + :::image type="content" source="./images/ent-mcc-create-azure-resource.png" alt-text="Screenshot of the Azure portal with the create a resource option outlined in red."::: -2. Type **Microsoft Connected Cache** into the search box, and hit **Enter** to show search results. +1. Type **Microsoft Connected Cache** into the search box, and hit **Enter** to show search results. -> [!NOTE] -> You'll not see Microsoft Connected Cache in the drop-down list. You need to type it and press enter to see the result. + > [!NOTE] + > You won't see Microsoft Connected Cache in the drop-down list. You'll need to type the string and press enter to see the result. -3. Select **Microsoft Connected Cache** and choose **Create** on the next screen to start the process of creating the MCC resource. +1. Select **Microsoft Connected Cache Enterprise** and choose **Create** on the next screen to start the process of creating the MCC resource. - ![eMCC img03](images/emcc03.png) - ![eMCC img04](images/emcc04.png) + :::image type="content" source="./images/ent-mcc-azure-search-result.png" alt-text="Screenshot of the Azure portal search results for Microsoft Connected Cache."::: + :::image type="content" source="./images/ent-mcc-azure-marketplace.png" alt-text="Screenshot of Microsoft Connected Cache Enterprise within the Azure Marketplace."::: -4. Fill in the required fields to create the MCC resource. +1. Fill in the required fields to create the MCC resource. - - Choose the subscription that you provided to Microsoft. - - Azure resource groups are logical groups of resources. Create a new resource group and choose a name for your resource group. - - Choose **(US) West US** for the location of the resource. This choice won't impact MCC if the physical location isn't in the West US, it's just a limitation of the preview. + - Choose the subscription that you provided to Microsoft. + - Azure resource groups are logical groups of resources. Create a new resource group and choose a name for your resource group. + - Choose **(US) West US** for the location of the resource. This choice won't impact MCC if the physical location isn't in the West US, it's just a limitation of the preview. - > [!NOTE] + > [!IMPORTANT] > Your MCC resource will not be created properly if you do not select **(US) West US** - - Choose a name for the MCC resource. + - Choose a name for the MCC resource. + - Your MCC resource must not contain the word **Microsoft** in it. - > [!NOTE] - > Your MCC resource must not contain the word **Microsoft** in it. + :::image type="content" source="./images/ent-mcc-azure-create-connected-cache.png" alt-text="Screenshot of the Create a Connected Cache page within the Azure Marketplace."::: - ![eMCC img05](images/emcc05.png) - -5. Once all the information has been entered, select the **Review + Create** button. Once validation is complete, select the **Create** button to start the +1. Once all the information has been entered, select the **Review + Create** button. Once validation is complete, select the **Create** button to start the resource creation. - ![eMCC img06](images/emcc06.png) + :::image type="content" source="./images/ent-mcc-azure-cache-created.png" alt-text="Screenshot of the completed cache deployment within the Azure."::: #### Error: Validation failed -- If you get a Validation failed error message on your portal, it's likely because you selected the **Location** as **US West 2** or some other location that isn't **(US) West US**. -- To resolve this error, go to the previous step and choose **(US) West US**. +- If you get a Validation failed error message on your portal, it's likely because you selected the **Location** as **US West 2** or some other location that isn't **(US) West US**. + - To resolve this error, go to the previous step and choose **(US) West US**. - ![eMCC img07](images/emcc07.png) + :::image type="content" source="./images/ent-mcc-create-cache-failed.png" alt-text="Screenshot of a failed cache deployment due to an incorrect location."::: ### Create an MCC node in Azure Creating an MCC node is a multi-step process and the first step is to access the MCC private preview management portal. -1. After the successful resource creation, select **Go to resource**. -2. Under **Cache Node Management** section on the leftmost panel, select **Cache Nodes**. +1. After the successful resource creation, select **Go to resource**. +1. Under **Cache Node Management** section on the leftmost panel, select **Cache Nodes**. - ![eMCC img08](images/emcc08.png) + :::image type="content" source="./images/ent-mcc-cache-nodes.png" alt-text="Screenshot of the Cache Node Management section with the navigation link to the Cache Nodes page outlined in red."::: -3. On the **Cache Nodes** blade, select the **Create Cache Node** button. +1. On the **Cache Nodes** blade, select the **Create Cache Node** button. - ![eMCC img09](images/emcc09.png) + :::image type="content" source="./images/ent-mcc-create-cache-node.png" alt-text="Screenshot of the Cache Nodes page with the Create Cache Node option outlined in red."::: -4. Selecting the **Create Cache Node** button will open the **Create Cache Node** page; **Cache Node Name** is the only field required for cache node creation. +1. Selecting the **Create Cache Node** button will open the **Create Cache Node** page; **Cache Node Name** is the only field required for cache node creation. -| **Field Name** | **Expected Value** | **Description** | -|---------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| -| **Cache Node Name** | Alphanumeric name that includes no spaces. | The name of the cache node. You may choose names based on location like Seattle-1. This name must be unique and can't be changed later. | + | **Field Name**| **Expected Value**|**Description** | + |---|---|---| + | **Cache Node Name** | Alphanumeric name that doesn't include any spaces. | The name of the cache node. You may choose names based on location such as `Seattle-1`. This name must be unique and can't be changed later. | -5. Enter the information for the **Cache Node** and select the **Create** button. +1. Enter the information for the **Cache Node** and select the **Create** button. -![eMCC img9.5](images/emcc09.5.png) + :::image type="content" source="./images/ent-mcc-create-cache-node-name.png" alt-text="Screenshot of the Cache Nodes page displaying the Cache Node Name text entry during the creation process."::: If there are errors, the form will provide guidance on how to correct the errors. @@ -167,13 +165,13 @@ Files contained in the mccinstaller.zip file: ```powershell Set -VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true ``` -2. Enable Mac Spoofing +1. Enable Mac Spoofing ```powershell Get-VMNetworkAdapter -VMName "VM name" | Set-VMNetworkAdapter -MacAddressSpoofing On ``` **Virtual machine should be in the OFF state while enabling Nested Virtualization and Mac Spoofing** -3. Set the execution policy +1. Set the execution policy ```powershell Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process @@ -181,7 +179,7 @@ Files contained in the mccinstaller.zip file: > [!NOTE] > After setting the execution policy, you'll see a warning asking if you wish to change the execution policy. Choose **[A] Yes to All**. -4. Copy the command from the portal and run it in Windows PowerShell +1. Copy the command from the portal and run it in Windows PowerShell ![eMCC img13](images/emcc13.png) @@ -193,7 +191,7 @@ Files contained in the mccinstaller.zip file: >
>
[D] Do not run **[R] Run once** [S] Suspend [?] Help (default is "D"): -3. Choose whether you would like to create a new virtual switch or select an existing one. Name your switch and select the Net Adapter to use for the switch. A computer restart will be required if you're creating a new switch. +1. Choose whether you would like to create a new virtual switch or select an existing one. Name your switch and select the Net Adapter to use for the switch. A computer restart will be required if you're creating a new switch. > [!NOTE] > Restarting your computer after creating a switch is recommended. You'll notice network delays during installation if the computer has not been restarted. @@ -202,11 +200,11 @@ Files contained in the mccinstaller.zip file: ![eMCC img14](images/emcc14.png) -4. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. +1. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. ![eMCC img15](images/emcc15.png) -5. Decide whether you would like to use dynamic or static address for the Eflow VM +1. Decide whether you would like to use dynamic or static address for the Eflow VM ![eMCC img16](images/emcc16.png) @@ -214,33 +212,33 @@ Files contained in the mccinstaller.zip file: > Choosing a dynamic IP address might assign a different IP address when the MCC restarts. >
A static IP address is recommended so you do not have to change this value in your management solution when MCC restarts. -6. Choose where you would like to download, install, and store the virtual hard disk for EFLOW. You'll also be asked how much memory, storage, and cores you would like to allocate for the VM. In this example, we chose the default values for all prompts. +1. Choose where you would like to download, install, and store the virtual hard disk for EFLOW. You'll also be asked how much memory, storage, and cores you would like to allocate for the VM. In this example, we chose the default values for all prompts. -7. Follow the Azure Device Login link and sign into the Azure portal. +1. Follow the Azure Device Login link and sign into the Azure portal. ![eMCC img17](images/emcc17.png) -8. If this is your first MCC deployment, select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. +1. If this is your first MCC deployment, select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. - 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription; Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter “1”** + 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription; Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter “1”** ![eMCC img18](images/emcc18.png) ![eMCC img19](images/emcc19.png) -9. Your MCC deployment is now complete. +1. Your MCC deployment is now complete. 1. If you don't see any errors, continue to the next section to validate your MCC deployment. - 2. After validating your MCC is properly functional, review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. - 3. If you had errors during your deployment, see the [Common Issues](#common-issues) section in this article. + 1. After validating your MCC is properly functional, review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. + 1. If you had errors during your deployment, see the [Common Issues](#common-issues) section in this article. -### Verify proper functioning MCC server +## Verify proper functioning MCC server #### Verify Client Side Connect to the EFLOW VM and check if MCC is properly running: -1. Open PowerShell as an Administrator -2. Enter the following commands: +1. Open PowerShell as an Administrator +2. Enter the following commands: ```powershell Connect-EflowVm @@ -280,17 +278,17 @@ For an Intune deployment, create a Configuration Profile and include the Cache H ![eMCC img23](images/emcc23.png) -### Common Issues +## Common Issues #### PowerShell issues -If you're seeing errors similar to this: “The term ‘Get-Something’ isn't recognized as the name of a cmdlet, function, script file, or operable program.” +If you're seeing errors similar to this: "The term 'Get-Something' isn't recognized as the name of a cmdlet, function, script file, or operable program." -1. Ensure you're running Windows PowerShell version 5.x. +1. Ensure you're running Windows PowerShell version 5.x. -2. Run \$PSVersionTable and ensure you’re running version 5.x and *not version 6 or 7*. +1. Run \$PSVersionTable and ensure you're running version 5.x and *not version 6 or 7*. -3. Ensure you have Hyper-V enabled: +1. Ensure you have Hyper-V enabled: **Windows 10:** [Enable Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) @@ -302,12 +300,12 @@ Connect to the Connected Cache server and check the list of running IoT Edge mod ```bash Connect-EflowVm -sudo iotedge list​ +sudo iotedge list ``` ![eMCC img24](images/emcc24.png) -If edgeAgent and edgeHub containers are listed, but not “MCC”, you may view the status of the IoT Edge security manager using the command: +If edgeAgent and edgeHub containers are listed, but not "MCC", you may view the status of the IoT Edge security manager using the command: ```bash sudo journalctl -u iotedge -f @@ -320,7 +318,7 @@ For example, this command will provide the current status of the starting, stopp Use this command to check the IoT Edge Journal ```bash -sudo journalctl -u iotedge –f +sudo journalctl -u iotedge -f ``` > [!NOTE] diff --git a/windows/deployment/do/mcc-enterprise.md b/windows/deployment/do/mcc-enterprise.md index 6b83267846..54e56aaec4 100644 --- a/windows/deployment/do/mcc-enterprise.md +++ b/windows/deployment/do/mcc-enterprise.md @@ -121,18 +121,18 @@ The MCC Azure management portal is used to create and manage MCC nodes. An Azure Once you take the survey above and the MCC team adds your subscription ID to the allowlist, you will be given a link to the Azure portal where you can create the resource described below. -1. On the Azure portal home page, choose **Create a resource**: - ![eMCC img02](images/emcc02.png) +1. In the Azure portal home page, choose **Create a resource**: + :::image type="content" source="./images/ent-mcc-create-azure-resource.png" alt-text="Screenshot of the Azure portal with the create a resource option outlined in red."::: 2. Type **Microsoft Connected Cache** into the search box, and hit **Enter** to show search results. > [!NOTE] > You'll not see Microsoft Connected Cache in the drop-down list. You need to type it and press enter to see the result. -3. Select **Microsoft Connected Cache** and choose **Create** on the next screen to start the process of creating the MCC resource. +3. Select **Microsoft Connected Cache Enterprise** and choose **Create** on the next screen to start the process of creating the MCC resource. - ![eMCC img03](images/emcc03.png) - ![eMCC img04](images/emcc04.png) + :::image type="content" source="./images/ent-mcc-azure-search-result.png" alt-text="Screenshot of the Azure portal search results for Microsoft Connected Cache."::: + :::image type="content" source="./images/ent-mcc-azure-marketplace.png" alt-text="Screenshot of Microsoft Connected Cache within the Azure Marketplace."::: 4. Fill in the required fields to create the MCC resource. @@ -148,12 +148,12 @@ Once you take the survey above and the MCC team adds your subscription ID to the > [!NOTE] > Your MCC resource must not contain the word **Microsoft** in it. - ![eMCC img05](images/emcc05.png) + :::image type="content" source="./images/ent-mcc-azure-create-connected-cache.png" alt-text="Screenshot of the Create a Connected Cache page within the Azure Marketplace."::: 5. Once all the information has been entered, click the **Review + Create** button. Once validation is complete, click the **Create** button to start the resource creation. - ![eMCC img06](images/emcc06.png) + :::image type="content" source="./images/ent-mcc-azure-cache-created.png" alt-text="Screenshot of the completed cache deployment within the Azure."::: #### Error: Validation failed @@ -406,20 +406,20 @@ If you're having issues with your MCC, we included a diagnostics script which wi To run this script: -1. Navigate to the following folder in the MCC installation files: +1. Navigate to the following folder in the MCC installation files: - mccinstaller \> Eflow \> Diagnostics + mccinstaller > Eflow > Diagnostics -2. Run the following commands: +1. Run the following commands: -```powershell -Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -.\collectMccDiagnostics.ps1 -``` + ```powershell + Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process + .\collectMccDiagnostics.ps1 + ``` -3. The script stores all the debug files into a folder and then creates a tar file. After the script is finished running, it will output the path of the tar file which you can share with us (should be “**\**\\mccdiagnostics\\support_bundle_\$timestamp.tar.gz”) +1. The script stores all the debug files into a folder and then creates a tar file. After the script is finished running, it will output the path of the tar file which you can share with us. The location should be **\**\mccdiagnostics\support_bundle_\$timestamp.tar.gz -4. [Email the MCC team](mailto:mccforenterprise@microsoft.com?subject=Debugging%20Help%20Needed%20for%20MCC%20for%20Enterprise) and attach this file asking for debugging support. Screenshots of the error along with any other warnings you saw will be helpful during out debugging process. +1. [Email the MCC team](mailto:mccforenterprise@microsoft.com?subject=Debugging%20Help%20Needed%20for%20MCC%20for%20Enterprise) and attach this file asking for debugging support. Screenshots of the error along with any other warnings you saw will be helpful during out debugging process. ## Update MCC @@ -502,42 +502,43 @@ There are multiple methods that can be used to apply a policy to PCs that should You can either set your MCC IP address or FQDN using: -1. Registry Key in 1709 and higher - - [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization]
+1. Registry Key (version 1709 and later): + `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization` +
"DOCacheHost"=" " - From an elevated command prompt: + From an elevated command prompt: - ``` - reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization" /v DOCacheHost /t REG_SZ /d "10.137.187.38" /f - ``` + ``` + reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization" /v DOCacheHost /t REG_SZ /d "10.137.187.38" /f + ``` -2. MDM Path in 1809 or higher: +1. MDM Path (version 1809 and later): - .Vendor/MSFT/Policy/Config/DeliveryOptimization/DOCacheHost + `.Vendor/MSFT/Policy/Config/DeliveryOptimization/DOCacheHost` -3. In Windows release version 1809 and later, you can apply the policy via Group Policy Editor. The policy to apply is **DOCacheHost**. To configure the clients to pull content from the MCC using Group Policy, set the Cache Server Hostname (Setting found under Computer Configuration, Administrative Templates, Windows Components, Delivery Optimization) to the IP address of your MCC. For example 10.137.187.38. +1. In Windows (release version 1809 and later), you can apply the policy via Group Policy Editor. The policy to apply is **DOCacheHost**. To configure the clients to pull content from the MCC using Group Policy, go to **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Delivery Optimization**. Set the **Cache Server Hostname** to the IP address of your MCC, such as `10.137.187.38`. - ![eMCC img26](images/emcc26.png) + :::image type="content" source="./images/ent-mcc-group-policy-hostname.png" alt-text="Screenshot of the Group Policy editor showing the Cache Server Hostname Group Policy setting."::: **Verify Content using the DO Client** To verify that the Delivery Optimization client can download content using MCC, you can use the following steps: -1. Download a game or application from the Microsoft Store. +1. Download a game or application from the Microsoft Store. - ![eMCC img27](images/emcc27.png) + :::image type="content" source="./images/ent-mcc-store-example-download.png" alt-text="Screenshot of the Microsoft Store with the game, Angry Birds 2, selected."::: -2. Verify downloads came from MCC by one of two methods: - - Using PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see BytesFromCacheServer test +1. Verify downloads came from MCC by one of two methods: - ![eMCC img28](images/emcc28.png) + - Using the PowerShell Cmdlet Get-DeliveryOptimizationStatus you should see *BytesFromCacheServer*. - - Looking at the Delivery Optimization Activity Monitor - - ![eMCC img29](images/emcc29.png) + :::image type="content" source="./images/ent-mcc-get-deliveryoptimizationstatus.png" alt-text="Screenshot of the output of Get-DeliveryOptimization | FT from PowerShell."::: + - Using the Delivery Optimization Activity Monitor + + :::image type="content" source="./images/ent-mcc-delivery-optimization-activity.png" alt-text="Screenshot of the Delivery Optimization Activity Monitor."::: ## Also see [Microsoft Connected Cache for ISPs](mcc-isp.md)
From 12c26053327743d5e930e81b27acce90a34f82ca Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 13 Oct 2022 14:36:30 -0700 Subject: [PATCH 12/15] markdown and image edits --- windows/deployment/do/mcc-enterprise.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/mcc-enterprise.md b/windows/deployment/do/mcc-enterprise.md index 54e56aaec4..a09143ccac 100644 --- a/windows/deployment/do/mcc-enterprise.md +++ b/windows/deployment/do/mcc-enterprise.md @@ -157,8 +157,8 @@ Once you take the survey above and the MCC team adds your subscription ID to the #### Error: Validation failed -- If you get a Validation failed error message on your portal, it's likely because you selected the **Location** as **US West 2** or some other location that isn't **(US) West US**. -- To resolve this error, go to the previous step and choose **(US) West US**. +- If you get a Validation failed error message on your portal, it's likely because you selected the **Location** as **US West 2** or some other location that isn't **(US) West US**. +- To resolve this error, go to the previous step and choose **(US) West US**. ![eMCC img07](images/emcc07.png) From 0583d82bbda9a33f2a0726699642d4f5e56379e9 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:43:46 -0700 Subject: [PATCH 13/15] markdown and image edits --- ...cc-connected-cache-installer-download.png} | Bin ...cc11.png => ent-mcc-delete-cache-node.png} | Bin ...c12.png => ent-mcc-download-installer.png} | Bin ...mcc13.png => ent-mcc-installer-script.png} | Bin ...emcc19.png => ent-mcc-script-complete.png} | Bin ...c17.png => ent-mcc-script-device-code.png} | Bin ...png => ent-mcc-script-dynamic-address.png} | Bin ...png => ent-mcc-script-existing-switch.png} | Bin ...cc14.png => ent-mcc-script-new-switch.png} | Bin ...cc18.png => ent-mcc-script-select-hub.png} | Bin .../deployment/do/mcc-enterprise-deploy.md | 154 +++++++++--------- 11 files changed, 78 insertions(+), 76 deletions(-) rename windows/deployment/do/images/{emcc10.png => ent-mcc-connected-cache-installer-download.png} (100%) rename windows/deployment/do/images/{emcc11.png => ent-mcc-delete-cache-node.png} (100%) rename windows/deployment/do/images/{emcc12.png => ent-mcc-download-installer.png} (100%) rename windows/deployment/do/images/{emcc13.png => ent-mcc-installer-script.png} (100%) rename windows/deployment/do/images/{emcc19.png => ent-mcc-script-complete.png} (100%) rename windows/deployment/do/images/{emcc17.png => ent-mcc-script-device-code.png} (100%) rename windows/deployment/do/images/{emcc16.png => ent-mcc-script-dynamic-address.png} (100%) rename windows/deployment/do/images/{emcc15.png => ent-mcc-script-existing-switch.png} (100%) rename windows/deployment/do/images/{emcc14.png => ent-mcc-script-new-switch.png} (100%) rename windows/deployment/do/images/{emcc18.png => ent-mcc-script-select-hub.png} (100%) diff --git a/windows/deployment/do/images/emcc10.png b/windows/deployment/do/images/ent-mcc-connected-cache-installer-download.png similarity index 100% rename from windows/deployment/do/images/emcc10.png rename to windows/deployment/do/images/ent-mcc-connected-cache-installer-download.png diff --git a/windows/deployment/do/images/emcc11.png b/windows/deployment/do/images/ent-mcc-delete-cache-node.png similarity index 100% rename from windows/deployment/do/images/emcc11.png rename to windows/deployment/do/images/ent-mcc-delete-cache-node.png diff --git a/windows/deployment/do/images/emcc12.png b/windows/deployment/do/images/ent-mcc-download-installer.png similarity index 100% rename from windows/deployment/do/images/emcc12.png rename to windows/deployment/do/images/ent-mcc-download-installer.png diff --git a/windows/deployment/do/images/emcc13.png b/windows/deployment/do/images/ent-mcc-installer-script.png similarity index 100% rename from windows/deployment/do/images/emcc13.png rename to windows/deployment/do/images/ent-mcc-installer-script.png diff --git a/windows/deployment/do/images/emcc19.png b/windows/deployment/do/images/ent-mcc-script-complete.png similarity index 100% rename from windows/deployment/do/images/emcc19.png rename to windows/deployment/do/images/ent-mcc-script-complete.png diff --git a/windows/deployment/do/images/emcc17.png b/windows/deployment/do/images/ent-mcc-script-device-code.png similarity index 100% rename from windows/deployment/do/images/emcc17.png rename to windows/deployment/do/images/ent-mcc-script-device-code.png diff --git a/windows/deployment/do/images/emcc16.png b/windows/deployment/do/images/ent-mcc-script-dynamic-address.png similarity index 100% rename from windows/deployment/do/images/emcc16.png rename to windows/deployment/do/images/ent-mcc-script-dynamic-address.png diff --git a/windows/deployment/do/images/emcc15.png b/windows/deployment/do/images/ent-mcc-script-existing-switch.png similarity index 100% rename from windows/deployment/do/images/emcc15.png rename to windows/deployment/do/images/ent-mcc-script-existing-switch.png diff --git a/windows/deployment/do/images/emcc14.png b/windows/deployment/do/images/ent-mcc-script-new-switch.png similarity index 100% rename from windows/deployment/do/images/emcc14.png rename to windows/deployment/do/images/ent-mcc-script-new-switch.png diff --git a/windows/deployment/do/images/emcc18.png b/windows/deployment/do/images/ent-mcc-script-select-hub.png similarity index 100% rename from windows/deployment/do/images/emcc18.png rename to windows/deployment/do/images/ent-mcc-script-select-hub.png diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md index 04dc145851..7f4d76b40a 100644 --- a/windows/deployment/do/mcc-enterprise-deploy.md +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -112,124 +112,126 @@ If there are errors, the form will provide guidance on how to correct the errors Once the MCC node has been created, the installer instructions will be exposed. More details on the installer instructions will be addressed later in this article, in the [Install Connected Cache](#install-mcc-on-windows) section. -![eMCC img10](images/emcc10.png) +:::image type="content" source="./images/ent-mcc-connected-cache-installer-download.png" alt-text="Screenshot of the Connected Cache installer download button, installer instructions, and script."::: #### Edit cache node information Cache nodes can be deleted here by selecting the check box to the left of a **Cache Node Name** and then selecting the delete toolbar item. Be aware that if a cache node is deleted, there's no way to recover the cache node or any of the information related to the cache node. -![eMCC img11](images/emcc11.png) +:::image type="content" source="./images/ent-mcc-delete-cache-node.png" alt-text="Screenshot of deleting a cache node from the Cache Nodes page."::: ### Install MCC on Windows Installing MCC on your Windows device is a simple process. A PowerShell script performs the following tasks: - - Installs the Azure CLI - - Downloads, installs, and deploys EFLOW - - Enables Microsoft Update so EFLOW can stay up to date - - Creates a virtual machine - - Enables the firewall and opens ports 80 and 22 for inbound and outbound traffic. Port 80 is used by MCC, and port 22 is used for SSH communications. - - Configures Connected Cache tuning settings. - - Creates the necessary *FREE* Azure resource - IoT Hub/IoT Edge. - - Deploys the MCC container to server. +- Installs the Azure CLI +- Downloads, installs, and deploys EFLOW +- Enables Microsoft Update so EFLOW can stay up to date +- Creates a virtual machine +- Enables the firewall and opens ports 80 and 22 for inbound and outbound traffic. Port 80 is used by MCC, and port 22 is used for SSH communications. +- Configures Connected Cache tuning settings. +- Creates the necessary *FREE* Azure resource - IoT Hub/IoT Edge. +- Deploys the MCC container to server. #### Run the installer -1. Download and unzip mccinstaller.zip from the create cache node page or cache node configuration page, which contains the necessary installation files. +1. Download and unzip `mccinstaller.zip` from the create cache node page or cache node configuration page, both of which contain the necessary installation files. - ![eMCC img12](images/emcc12.png) + :::image type="content" source="./images/ent-mcc-download-installer.png" alt-text="Screenshot of the download installer option on the Create Cache Node page."::: -Files contained in the mccinstaller.zip file: + The following files are contained in the `mccinstaller.zip` file: - - **installmcc.ps1**: Main installer file. - - **installEflow.ps1**: Installs the necessary prerequisites such as the Linux VM, IoT Edge runtime, and Docker, and makes necessary host OS settings to optimize caching performance. - - **resourceDeploymentForConnectedCache.ps1**: Creates Azure cloud resources required to support MCC control plane. - - **mccdeployment.json**: Deployment manifest used by IoT Edge to deploy the MCC container and configure settings on the container, such as cache drive location sizes. - - **updatemcc.ps1**: The update script used to upgrade MCC to a particular version. - - **mccupdate.json**: Used as part of the update script + - **installmcc.ps1**: Main installer file. + - **installEflow.ps1**: Installs the necessary prerequisites such as the Linux VM, IoT Edge runtime, and Docker, and makes necessary host OS settings to optimize caching performance. + - **resourceDeploymentForConnectedCache.ps1**: Creates Azure cloud resources required to support MCC control plane. + - **mccdeployment.json**: Deployment manifest used by IoT Edge to deploy the MCC container and configure settings on the container, such as cache drive location sizes. + - **updatemcc.ps1**: The update script used to upgrade MCC to a particular version. + - **mccupdate.json**: Used as part of the update script -1. Open Windows PowerShell as administrator and navigate to the location of these files. +1. Open Windows PowerShell as administrator then navigate to the location of these files. -> [!NOTE] -> Ensure that Hyper-V is enabled on your device. -> Do not use PowerShell ISE, PowerShell 6.x, or PowerShell 7.x. Only Windows PowerShell version 5.x is supported. + > [!NOTE] + > Ensure that Hyper-V is enabled on your device. + > - **Windows 10:** [Enable Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) + > - **Windows Server:** [Install the Hyper-V role on Windows Server](/windows-server/virtualization/hyper-v/get-started/install-the-hyper-v-role-on-windows-server)' + > + > Don't use PowerShell ISE, PowerShell 6.x, or PowerShell 7.x. Only Windows PowerShell version 5.x is supported. - **Windows 10:** [Enable Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) +#### If you're installing MCC on a local virtual machine - **Windows Server:** [Install the Hyper-V role on Windows Server](/windows-server/virtualization/hyper-v/get-started/install-the-hyper-v-role-on-windows-server) +1. Turn the virtual machine **off** while you enable nested virtualization and MAC spoofing. + 1. Enable nested virtualization: -#### If you're installing MCC on a local virtual machine: + ```powershell + Set -VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true + ``` -1. Enable Nested Virtualization + 1. Enable MAC spoofing: - ```powershell - Set -VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true - ``` -1. Enable Mac Spoofing - ```powershell - Get-VMNetworkAdapter -VMName "VM name" | Set-VMNetworkAdapter -MacAddressSpoofing On - ``` - **Virtual machine should be in the OFF state while enabling Nested Virtualization and Mac Spoofing** + ```powershell + Get-VMNetworkAdapter -VMName "VM name" | Set-VMNetworkAdapter -MacAddressSpoofing On + ``` -1. Set the execution policy +1. Set the execution policy. - ```powershell - Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process - ``` - > [!NOTE] - > After setting the execution policy, you'll see a warning asking if you wish to change the execution policy. Choose **[A] Yes to All**. + ```powershell + Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process + ``` -1. Copy the command from the portal and run it in Windows PowerShell + > [!NOTE] + > After setting the execution policy, you'll see a warning asking if you wish to change the execution policy. Choose **[A] Yes to All**. - ![eMCC img13](images/emcc13.png) +1. Copy the command from the Azure portal and run it in Windows PowerShell. - > [!NOTE] - > After running the command, and multiple times throughout the installation process, you'll receive the following notice. **Please select [R] Run once to proceed**. - >
- >
Security warning - >
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run C:\\Users\\mccinstaller\\Eflow\\installmcc.ps1? - >
- >
[D] Do not run **[R] Run once** [S] Suspend [?] Help (default is "D"): + :::image type="content" source="./images/ent-mcc-installer-script.png" alt-text="Screenshot of the installer script for the connected cache node."::: + + > [!NOTE] + > After running the command, and multiple times throughout the installation process, you'll receive the following notice. Select **[R] Run once** to proceed. + >
+ >
Security warning + >
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run C:\Users\mccinstaller\Eflow\installmcc.ps1? + >
+ >
[D] Do not run **[R] Run once** [S] Suspend [?] Help (default is "D"): 1. Choose whether you would like to create a new virtual switch or select an existing one. Name your switch and select the Net Adapter to use for the switch. A computer restart will be required if you're creating a new switch. - > [!NOTE] - > Restarting your computer after creating a switch is recommended. You'll notice network delays during installation if the computer has not been restarted. + > [!NOTE] + > Restarting your computer after creating a switch is recommended. You'll notice network delays during installation if the computer has not been restarted. - If you restarted your computer after creating a switch, start from Step 2 above and skip step 5. + If you restarted your computer after creating a switch, start from Step 2 above and skip step 5. - ![eMCC img14](images/emcc14.png) + :::image type="content" source="./images/ent-mcc-script-new-switch.png" alt-text="Screenshot of the installer script running in PowerShell when a new switch is created."::: -1. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. +1. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. - ![eMCC img15](images/emcc15.png) + :::image type="content" source="./images/ent-mcc-script-existing-switch.png" alt-text="Screenshot of the installer script running in PowerShell when using an existing switch."::: -1. Decide whether you would like to use dynamic or static address for the Eflow VM +1. Decide whether you would like to use dynamic or static address for the Eflow VM - ![eMCC img16](images/emcc16.png) + :::image type="content" source="./images/ent-mcc-script-dynamic-address.png" alt-text="Screenshot of the installer script running in PowerShell asking if you'd like to use a dynamic address."::: - > [!NOTE] - > Choosing a dynamic IP address might assign a different IP address when the MCC restarts. - >
A static IP address is recommended so you do not have to change this value in your management solution when MCC restarts. + > [!NOTE] + > Choosing a dynamic IP address might assign a different IP address when the MCC restarts. A static IP address is recommended so you don't have to change this value in your management solution when MCC restarts. -1. Choose where you would like to download, install, and store the virtual hard disk for EFLOW. You'll also be asked how much memory, storage, and cores you would like to allocate for the VM. In this example, we chose the default values for all prompts. +1. Choose where you would like to download, install, and store the virtual hard disk for EFLOW. You'll also be asked how much memory, storage, and how many cores you would like to allocate for the VM. For this example, we chose the default values for all prompts. 1. Follow the Azure Device Login link and sign into the Azure portal. - ![eMCC img17](images/emcc17.png) + :::image type="content" source="./images/ent-mcc-script-device-code.png" alt-text="Screenshot of the installer script running in PowerShell displaying the code and URL to use for the Azure portal."::: 1. If this is your first MCC deployment, select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. - 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription; Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter “1”** + 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription. Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter "1"** + + :::image type="content" source="./images/ent-mcc-script-select-hub.png" alt-text="Screenshot of the installer script running in PowerShell prompting you to select which IoT Hub to use."::: + :::image type="content" source="./images/ent-mcc-script-complete.png" alt-text="Screenshot of the installer script displaying the completion summary in PowerShell."::: - ![eMCC img18](images/emcc18.png) - ![eMCC img19](images/emcc19.png) 1. Your MCC deployment is now complete. - 1. If you don't see any errors, continue to the next section to validate your MCC deployment. - 1. After validating your MCC is properly functional, review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. - 1. If you had errors during your deployment, see the [Common Issues](#common-issues) section in this article. + 1. If you don't see any errors, continue to the next section to validate your MCC deployment. + 1. After validating your MCC is properly functional, review your management solution documentation, such as [Intune](/mem/intune/configuration/delivery-optimization-windows), to set the cache host policy to the IP address of your MCC. + 1. If you had errors during your deployment, see the [Common Issues](#common-issues) section in this article. ## Verify proper functioning MCC server @@ -237,16 +239,16 @@ Files contained in the mccinstaller.zip file: Connect to the EFLOW VM and check if MCC is properly running: -1. Open PowerShell as an Administrator +1. Open PowerShell as an Administrator. 2. Enter the following commands: -```powershell -Connect-EflowVm -sudo -s -iotedge list -``` + ```powershell + Connect-EflowVm + sudo -s + iotedge list + ``` -![eMCC img20](images/emcc20.png) + ![eMCC img20](images/emcc20.png) You should see MCC, edgeAgent, and edgeHub running. If you see edgeAgent or edgeHub but not MCC, please try this command in a few minutes. The MCC container can take a few minutes to deploy From c5cd33d4a3011daf1fe876e43c1c660371894b7d Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 13 Oct 2022 16:07:51 -0700 Subject: [PATCH 14/15] markdown and image edits --- .../{emcc20.png => ent-mcc-connect-eflowvm.png} | Bin ...png => ent-mcc-verify-server-powershell.png} | Bin ...emcc21.png => ent-mcc-verify-server-ssh.png} | Bin windows/deployment/do/mcc-enterprise-deploy.md | 16 +++++++--------- 4 files changed, 7 insertions(+), 9 deletions(-) rename windows/deployment/do/images/{emcc20.png => ent-mcc-connect-eflowvm.png} (100%) rename windows/deployment/do/images/{emcc22.png => ent-mcc-verify-server-powershell.png} (100%) rename windows/deployment/do/images/{emcc21.png => ent-mcc-verify-server-ssh.png} (100%) diff --git a/windows/deployment/do/images/emcc20.png b/windows/deployment/do/images/ent-mcc-connect-eflowvm.png similarity index 100% rename from windows/deployment/do/images/emcc20.png rename to windows/deployment/do/images/ent-mcc-connect-eflowvm.png diff --git a/windows/deployment/do/images/emcc22.png b/windows/deployment/do/images/ent-mcc-verify-server-powershell.png similarity index 100% rename from windows/deployment/do/images/emcc22.png rename to windows/deployment/do/images/ent-mcc-verify-server-powershell.png diff --git a/windows/deployment/do/images/emcc21.png b/windows/deployment/do/images/ent-mcc-verify-server-ssh.png similarity index 100% rename from windows/deployment/do/images/emcc21.png rename to windows/deployment/do/images/ent-mcc-verify-server-ssh.png diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md index 7f4d76b40a..a17c791530 100644 --- a/windows/deployment/do/mcc-enterprise-deploy.md +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -248,9 +248,9 @@ Connect to the EFLOW VM and check if MCC is properly running: iotedge list ``` - ![eMCC img20](images/emcc20.png) + :::image type="content" source="./images/ent-mcc-connect-eflowvm.png" alt-text="Screenshot of running connect-EflowVm, sudo -s, and iotedge list from PowerShell."::: -You should see MCC, edgeAgent, and edgeHub running. If you see edgeAgent or edgeHub but not MCC, please try this command in a few minutes. The MCC container can take a few minutes to deploy +You should see MCC, edgeAgent, and edgeHub running. If you see edgeAgent or edgeHub but not MCC, please try this command in a few minutes. The MCC container can take a few minutes to deploy. #### Verify server side @@ -260,17 +260,15 @@ For a validation of properly functioning MCC, execute the following command in t wget [http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com] ``` -A successful test result will look like this: +A successful test result will display a status code of 200 along with additional information. -![eMCC img21](images/emcc21.png) +:::image type="content" source="./images/ent-mcc-verify-server-ssh.png" alt-text="Screenshot of a successful wget with an SSH client."::: -OR + :::image type="content" source="./images/ent-mcc-verify-server-powershell.png" alt-text="Screenshot of a successful wget using PowerShell."::: -![eMCC img22](images/emcc22.png) +Similarly, enter the following URL from a browser in the network: -Similarly, enter this URL from a browser in the network: - -[http://YourCacheServerIP/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com]() +`http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com` If the test fails, see the [common issues](#common-issues) section for more information. From 410c30aacc179b5ecfe4f51fbecf65757b24e10f Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:49:20 -0700 Subject: [PATCH 15/15] markdown and image edits --- .../{emcc23.png => ent-mcc-intune-do.png} | Bin .../{emcc24.png => ent-mcc-iotedge-list.png} | Bin .../{emcc25.png => ent-mcc-journalctl.png} | Bin .../deployment/do/mcc-enterprise-deploy.md | 30 +++++++++--------- 4 files changed, 15 insertions(+), 15 deletions(-) rename windows/deployment/do/images/{emcc23.png => ent-mcc-intune-do.png} (100%) rename windows/deployment/do/images/{emcc24.png => ent-mcc-iotedge-list.png} (100%) rename windows/deployment/do/images/{emcc25.png => ent-mcc-journalctl.png} (100%) diff --git a/windows/deployment/do/images/emcc23.png b/windows/deployment/do/images/ent-mcc-intune-do.png similarity index 100% rename from windows/deployment/do/images/emcc23.png rename to windows/deployment/do/images/ent-mcc-intune-do.png diff --git a/windows/deployment/do/images/emcc24.png b/windows/deployment/do/images/ent-mcc-iotedge-list.png similarity index 100% rename from windows/deployment/do/images/emcc24.png rename to windows/deployment/do/images/ent-mcc-iotedge-list.png diff --git a/windows/deployment/do/images/emcc25.png b/windows/deployment/do/images/ent-mcc-journalctl.png similarity index 100% rename from windows/deployment/do/images/emcc25.png rename to windows/deployment/do/images/ent-mcc-journalctl.png diff --git a/windows/deployment/do/mcc-enterprise-deploy.md b/windows/deployment/do/mcc-enterprise-deploy.md index a17c791530..082884302b 100644 --- a/windows/deployment/do/mcc-enterprise-deploy.md +++ b/windows/deployment/do/mcc-enterprise-deploy.md @@ -200,15 +200,15 @@ Installing MCC on your Windows device is a simple process. A PowerShell script p If you restarted your computer after creating a switch, start from Step 2 above and skip step 5. - :::image type="content" source="./images/ent-mcc-script-new-switch.png" alt-text="Screenshot of the installer script running in PowerShell when a new switch is created."::: + :::image type="content" source="./images/ent-mcc-script-new-switch.png" alt-text="Screenshot of the installer script running in PowerShell when a new switch is created." lightbox="./images/ent-mcc-script-new-switch.png"::: 1. Rerun the script after the restart. This time, choose **No** when asked to create a new switch. Enter the number corresponding to the switch you previously created. - :::image type="content" source="./images/ent-mcc-script-existing-switch.png" alt-text="Screenshot of the installer script running in PowerShell when using an existing switch."::: + :::image type="content" source="./images/ent-mcc-script-existing-switch.png" alt-text="Screenshot of the installer script running in PowerShell when using an existing switch." lightbox="./images/ent-mcc-script-existing-switch.png"::: 1. Decide whether you would like to use dynamic or static address for the Eflow VM - :::image type="content" source="./images/ent-mcc-script-dynamic-address.png" alt-text="Screenshot of the installer script running in PowerShell asking if you'd like to use a dynamic address."::: + :::image type="content" source="./images/ent-mcc-script-dynamic-address.png" alt-text="Screenshot of the installer script running in PowerShell asking if you'd like to use a dynamic address." lightbox="./images/ent-mcc-script-dynamic-address.png"::: > [!NOTE] > Choosing a dynamic IP address might assign a different IP address when the MCC restarts. A static IP address is recommended so you don't have to change this value in your management solution when MCC restarts. @@ -217,14 +217,14 @@ Installing MCC on your Windows device is a simple process. A PowerShell script p 1. Follow the Azure Device Login link and sign into the Azure portal. - :::image type="content" source="./images/ent-mcc-script-device-code.png" alt-text="Screenshot of the installer script running in PowerShell displaying the code and URL to use for the Azure portal."::: + :::image type="content" source="./images/ent-mcc-script-device-code.png" alt-text="Screenshot of the installer script running in PowerShell displaying the code and URL to use for the Azure portal." lightbox="./images/ent-mcc-script-device-code.png"::: 1. If this is your first MCC deployment, select **n** so that a new IoT Hub can be created. If you have already configured MCC before, choose **y** so that your MCCs are grouped in the same IoT Hub. 1. You'll be shown a list of existing IoT Hubs in your Azure Subscription. Enter the number corresponding to the IoT Hub to select it. **You'll likely have only 1 IoT Hub in your subscription, in which case you want to enter "1"** - :::image type="content" source="./images/ent-mcc-script-select-hub.png" alt-text="Screenshot of the installer script running in PowerShell prompting you to select which IoT Hub to use."::: - :::image type="content" source="./images/ent-mcc-script-complete.png" alt-text="Screenshot of the installer script displaying the completion summary in PowerShell."::: + :::image type="content" source="./images/ent-mcc-script-select-hub.png" alt-text="Screenshot of the installer script running in PowerShell prompting you to select which IoT Hub to use." lightbox="./images/ent-mcc-script-select-hub.png"::: + :::image type="content" source="./images/ent-mcc-script-complete.png" alt-text="Screenshot of the installer script displaying the completion summary in PowerShell." lightbox="./images/ent-mcc-script-complete.png"::: 1. Your MCC deployment is now complete. @@ -248,7 +248,7 @@ Connect to the EFLOW VM and check if MCC is properly running: iotedge list ``` - :::image type="content" source="./images/ent-mcc-connect-eflowvm.png" alt-text="Screenshot of running connect-EflowVm, sudo -s, and iotedge list from PowerShell."::: + :::image type="content" source="./images/ent-mcc-connect-eflowvm.png" alt-text="Screenshot of running connect-EflowVm, sudo -s, and iotedge list from PowerShell." lightbox="./images/ent-mcc-connect-eflowvm.png"::: You should see MCC, edgeAgent, and edgeHub running. If you see edgeAgent or edgeHub but not MCC, please try this command in a few minutes. The MCC container can take a few minutes to deploy. @@ -262,9 +262,9 @@ wget [http:///mscomtest/wuidt.gif?cacheHostOrigin=au.download.win A successful test result will display a status code of 200 along with additional information. -:::image type="content" source="./images/ent-mcc-verify-server-ssh.png" alt-text="Screenshot of a successful wget with an SSH client."::: +:::image type="content" source="./images/ent-mcc-verify-server-ssh.png" alt-text="Screenshot of a successful wget with an SSH client." lightbox="./images/ent-mcc-verify-server-ssh.png"::: - :::image type="content" source="./images/ent-mcc-verify-server-powershell.png" alt-text="Screenshot of a successful wget using PowerShell."::: + :::image type="content" source="./images/ent-mcc-verify-server-powershell.png" alt-text="Screenshot of a successful wget using PowerShell." lightbox="./images/ent-mcc-verify-server-powershell.png"::: Similarly, enter the following URL from a browser in the network: @@ -274,15 +274,15 @@ If the test fails, see the [common issues](#common-issues) section for more info ### Intune (or other management software) configuration for MCC -For an Intune deployment, create a Configuration Profile and include the Cache Host eFlow IP Address or FQDN: +For an [Intune](/mem/intune/) deployment, create a **Configuration Profile** and include the Cache Host eFlow IP Address or FQDN: -![eMCC img23](images/emcc23.png) +:::image type="content" source="./images/ent-mcc-intune-do.png" alt-text="Screenshot of Intune showing the Delivery Optimization cache server host names."::: ## Common Issues #### PowerShell issues -If you're seeing errors similar to this: "The term 'Get-Something' isn't recognized as the name of a cmdlet, function, script file, or operable program." +If you're seeing errors similar to this: `The term Get- isn't recognized as the name of a cmdlet, function, script file, or operable program.` 1. Ensure you're running Windows PowerShell version 5.x. @@ -303,7 +303,7 @@ Connect-EflowVm sudo iotedge list ``` -![eMCC img24](images/emcc24.png) +:::image type="content" source="./images/ent-mcc-iotedge-list.png" alt-text="Screenshot of the iotedge list command." lightbox="./images/ent-mcc-iotedge-list.png"::: If edgeAgent and edgeHub containers are listed, but not "MCC", you may view the status of the IoT Edge security manager using the command: @@ -311,9 +311,9 @@ If edgeAgent and edgeHub containers are listed, but not "MCC", you may view the sudo journalctl -u iotedge -f ``` -For example, this command will provide the current status of the starting, stopping of a container, or the container pull and start as is shown in the sample below: +For example, this command will provide the current status of the starting, stopping of a container, or the container pull and start. -![eMCC img25](images/emcc25.png) +:::image type="content" source="./images/ent-mcc-journalctl.png" alt-text="Screenshot of the output from journalctl -u iotedge -f." lightbox="./images/ent-mcc-journalctl.png"::: Use this command to check the IoT Edge Journal