About Me

My Photo
TsooRad is a blog for John Weber. John is a Lync Server MVP (2010-2013). My day job is titled "Principal Consulting Engineer" - I work with an awesome group of people at CDW, LLC. I’ve been at this gig in one fashion or another since 1988 - starting with desktops (remember Z-248’s?) and now I am in Portland, Oregon. I focus on collaboration and infrastructure. This means Exchange of all flavors, LCS/OCS/Lync, Windows, business process, and learning new stuff. I have a variety of interests - some of which may rear their ugly head in this forum. I have a variety of certifications dating back to Novell CNE and working up through the Microsoft MCP stack to MCITP multiple times. FWIW, I am on my third career - ex-USMC, retired US Army. I have a fancy MBA. One of these days, I intend to start teaching. The opinions expressed on this blog are mine and mine alone.

2012/12/14

Lync File Share Size

One of Lync’s great features is Web Conferencing.  With users leveraging Web Conferencing more and more, complete with content uploads, a question of “how big does my share space need to be” comes up.

The Lync File Share, per pool, is an amalgamation of all web services content, address book, and conferencing data uploaded by users. By default, the size limit per conference is 500MB and the Conferencing Server will maintain the conference data for 15 days. In my experience, the uploaded meeting content will be the bulk of any projected Lync share space usage.

I had a project with 60,000 users and the initial decision was to let them ALL have full global conferencing profile status.  Using the numbers above and the projected 60,000 conferencing users would have created a file share need of 450TB.

  

days to retain

max data (MB

provisioned users

file share size (MB)

15

500

60,000

450,000,000

So we had to do something.  450TB of data storage, even thin-provisioned and potentially spread across multiple servers, represents a considerable cost and commitment. 

One Solution

Let’s take a look at the default  CSConferencingConfiguration:

Get-CsConferencingConfiguration

Identity                           : Global
MaxContentStorageMb                : 500
MaxUploadFileSizeMb                : 500
MaxBandwidthPerAppSharingServiceMb : 375
ContentGracePeriod                 : 15.00:00:00
ClientMediaPortRangeEnabled        : False
ClientMediaPort                    : 5350
ClientMediaPortRange               : 40
ClientAudioPort                    : 5350
ClientAudioPortRange               : 40
ClientVideoPort                    : 5350
ClientVideoPortRange               : 40
ClientAppSharingPort               : 5350
ClientAppSharingPortRange          : 40
ClientFileTransferPort             : 5350
ClientFileTransferPortRange        : 40
ClientSipDynamicPort               : 7100
ClientSipDynamicPortRange          : 3
Organization                       :
HelpdeskInternalUrl                :
HelpdeskExternalUrl                :
ConsoleDownloadInternalUrl         :
ConsoleDownloadExternalUrl         :

From here is it fairly easy to see that we can use a few of these attributes to make some changes:

Set-CsConferencingConfiguration -identity global -MaxCon
tentStorageMb 200 -MaxUploadFilesize 10 -ContentGracePeriod 7.00:00:00

This gives us a totally different outcome:

Get-CsConferencingConfiguration

Identity                           : Global
MaxContentStorageMb                : 200
MaxUploadFileSizeMb                : 10
MaxBandwidthPerAppSharingServiceMb : 375
ContentGracePeriod                 : 7.00:00:00
ClientMediaPortRangeEnabled        : False
ClientMediaPort                    : 5350
ClientMediaPortRange               : 40
ClientAudioPort                    : 5350
ClientAudioPortRange               : 40
ClientVideoPort                    : 5350
ClientVideoPortRange               : 40
ClientAppSharingPort               : 5350
ClientAppSharingPortRange          : 40
ClientFileTransferPort             : 5350
ClientFileTransferPortRange        : 40
ClientSipDynamicPort               : 7100
ClientSipDynamicPortRange          : 3
Organization                       :
HelpdeskInternalUrl                :
HelpdeskExternalUrl                :
ConsoleDownloadInternalUrl         :
ConsoleDownloadExternalUrl         :

days to retain

max data (MB

provisioned users

file share size (MB)

7

200

60,000

84,000,000

Still not great, but much better.  You will notice that in the previous command, I also restricted the size of the maximum upload, which will help also. What they ended up deciding was that only 10k users would have the ability to create a web conference with 100MB of storage for a retention period of 7 days. even so, the projected need at that point was 7TB. 

While that one project is LARGE in terms of users, a more recent project with only 200 users calculated out to needing 600GB projected storage for 15 days of 200 users at 200MB.  This project team will want to use policies to control the ability to create conferences and control content also.  After all, even in the days of multi-terabyte drives, throwing drive space at the issue is not a substitute for understanding and planning. Here is a handy chart that might help visualize the issue:

days to retain

max data (MB

provisioned users

file share size (MB)

7

100

200

140,000

15

200 200 600,000
10 300 200 600,000
10 400 200 800,000
15 500 200 1,500,000
7 200 60,000 84,000,000

Clearly, there may be other methods to control the size of the file share, this is just one.  Remember that in your efforts to be concise in capacity planning that the file share holds the uploaded conference material and plan accordingly.  A few questions come to mind:

  1. How much uploaded material will there be for the typical user?
  2. Can the users be segregated in terms of capacity?
  3. If #2, can we safely place users in distinct pools to help control size?

This list can go on for a long time, but I think you get the idea.

YMMV.

No comments: