new blog post on large backup best practices (#2446)
## Description new blog post on large backup best practices ## Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [x] 🗺️ Documentation - [ ] 🤖 Test - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup ## Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * #<issue> ## Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E --------- Co-authored-by: Niraj Tolia <ntolia@users.noreply.github.com>
This commit is contained in:
parent
533164744b
commit
d7c0f61105
65
website/blog/2023-2-17-large-exchange-backups.md
Normal file
65
website/blog/2023-2-17-large-exchange-backups.md
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
slug: large-microsoft-365-exchange-backups
|
||||
title: "Backing up large Microsoft 365 Exchange mailboxes with Corso"
|
||||
description: "A guide to using Corso to back up very large Exchange mailboxes in Microsoft 365"
|
||||
authors: nica
|
||||
tags: [corso, microsoft 365, backups, S3]
|
||||
date: 2023-2-21
|
||||
image: ./images/heavy-mover.jpg
|
||||
---
|
||||
|
||||

|
||||
|
||||
Over the last few months it’s been amazing sharing Corso with more and more users. One pleasant surprise has been users
|
||||
who are operating in large, often multi-tenant deployments of Microsoft 365 who want to use Corso to back up all their
|
||||
data. In our discussions on the [Corso User Discord](https://discord.gg/63DTTSnuhT), we’ve found some best practices for
|
||||
backing up large Exchange mailboxes with Corso.
|
||||
|
||||
<!-- truncate -->
|
||||
|
||||
### Make sure you’re using the latest version of Corso
|
||||
|
||||
We've recently done a lot of work to harden Corso against transient network outages and Graph API timeouts. This
|
||||
hardening work makes the most impact during large backups as their long runtime increase the probability of running
|
||||
into transient errors.
|
||||
|
||||
Our recent work has also included support for incremental backups, which you’ll definitely need for larger data sets.
|
||||
This means that while your first backup of a user with a large mailbox can take some time, all subsequent backups
|
||||
will be quite fast as Corso will only capture the incremental changes while still constructing a full backup.
|
||||
|
||||
### Don’t be afraid to restart your backups
|
||||
|
||||
Fundamentally, Corso is a consumer of the Microsoft Graph API, which like all complex API’s, isn’t 100% predictable.
|
||||
Even in the event of a failed backup, Corso will often have stored multiple objects in the course of a backup. Corso
|
||||
will work hard to reuse these stored objects in the next backup, meaning your next backup isn’t starting from
|
||||
zero. A second attempt is likely to run faster with a better chance of completing successfully.
|
||||
|
||||
### Batch your users
|
||||
|
||||
If many of your users have large file attachments (or if you have more than a few hundred users), you’ll want to batch
|
||||
your users for your first backup. A tool like [Microsoft365dsc](https://microsoft365dsc.com/) can help you get a list
|
||||
of all user emails ready for parsing. After that you can back up a few users or even a single user at a time with the
|
||||
Corso command `corso backup create exchange --user "alice@example.com,bob@example.com"`
|
||||
|
||||
Why can’t you just run them all in one go with `--user '*'` ? Again we’re limited by the Microsoft’s Graph API which
|
||||
often has timeouts, 5xx errors, and throttles its clients.
|
||||
|
||||
The good news is that with Corso’s robust ability to do incremental backups, after your first backup, you can
|
||||
absolutely use larger batches of users, as all future backups to the same repository will run **much** faster.
|
||||
|
||||
### Use multiple repositories for different tenants
|
||||
|
||||
If you’re a managed service provider or otherwise running a multi-tennant architecture, you should use multiple separate
|
||||
repositories with Corso. Two ways to pursue this:
|
||||
|
||||
- Point to separate buckets
|
||||
- Place other repositories in subfolders of the same bucket with the `prefix` option
|
||||
|
||||
In both cases, the best way to keep these settings tidy is by using multiple `.corso.toml`
|
||||
[configuration files](../../docs/setup/configuration/#configuration-file). Use the
|
||||
`-config-file` option to point to separate config files
|
||||
|
||||
### Have questions?
|
||||
|
||||
Corso is under active development, and we expect our support for this type of use case to improve rapidly.
|
||||
If you have feedback for us please do [join our discord](https://discord.gg/63DTTSnuhT) and talk directly with the team!
|
||||
BIN
website/blog/images/heavy-mover.jpg
Normal file
BIN
website/blog/images/heavy-mover.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 544 KiB |
Loading…
x
Reference in New Issue
Block a user