480 likes | 542 Views
Space Management. Rick Jooss SANiSAN Business Unit. Agenda . What is Flexible or Thin Provisioning Types of Thin Provisioning How a LUN fills ONTAP Variables Space Usage in a volume Configurations Default Configuration Snapshot - Snapshot Auto delete Snapshot - Volume Auto grow
E N D
Space Management Rick Jooss SANiSAN Business Unit
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • How a LUN fills • ONTAP Variables • Space Usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
What is Thin Provisioning? • Presenting more space to the servers than the storage systems actually contains • Classic examples from other industries • Banks • Water Companies • Electric Companies • Insurance Companies • Large systems are needed
Types of Thin Provisioning • Snapshot Space • Creating, mapping and snapshotting 100 x 100GB LUNs with less than 20+ TB (< 2X + Δ) • In the NAS world snapshot space is always thin provisioned • LUN Space • Creating and mapping 10TB (100 x 100GB) LUNs when the storage system only has 8TB • Only makes sense when one is not creating snapshots because having less than 10TB with snapshots is not reasonable
LUN Filling with new files Step #1 – write 2 files, each 25% of the LUN/disk size Host reports = 50% FullStorage reports = 50% Full File 1 File 2 0% 25% 50% 75% 100% Step #2 – write a 3rd file which is 25% of the LUN/disk size Host reports = 75% FullStorage reports = 75% Full File 1 File 2 File 3 0% 25% 50% 75% 100% Step #3 – delete files #1 and #2 Host reports = 25% FullStorage reports = 75% Full File 3 0% 25% 50% 75% 100% Step #4 – write a 4th file which is 25% of the LUN/disk size Host reports = 50% FullStorage reports = 100% Full File 4 File 3 0% 25% 50% 75% 100%
LUN Filling with new files Step #6 – delete file 3 and 4 Host Reports = 0% FullStorage reports = 100% Full 0% 25% 50% 75% 100% Step #7 – add new file 5 Host Reports = 25% FullStoragereports = 100% Full File 5 0% 25% 50% 75% 100%
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
ONTAP variables affecting space usage • ONTAP Variables • Guarantee • LUN reservation • Fractional (space) Reservation • Snap Reserve • Auto Delete • Auto grow • Try first
Guarantees • Set on a per volume basis • Determines when space is allocated from the aggregate • Possible settings • Volume (default) • Space is reserved from the aggregate at volume creation time • This space is not available to other volumes regardless of how much is really used • None • No space is reserved from the aggregate at volume creation time • Space is taken from the aggregate as data is written • Allows thin provisioning of volumes • Any individual volume still is not allowed to take more space than its size • File • The same as none but allows individual LUNs (or files) to set space reservations to ensure they have adequate space
LUN Reservation • Set on per LUN basis • Determines when space is allocated from the volume • Possible settings • enabled (default) • Space is reserved from the volume at LUN creation time • This space is not available to other LUNs or files regardless of how much is really used • Disabled • No space is reserved from the volume at volume LUN time • Space is taken from the volume as data is written
Fractional (space) Reservation • Set on a per volume basis • Determines if space is reserved from the volume at first snapshot creation • Possible settings • 100% (default) • An amount of space equal to the amount of space used with in the LUNs is reserved from the volume • This space is not available to other LUNs or files regardless of how much is really used • 0 to 99% • An amount of space equal to the amount of space used with in the LUNs times fractional_reserve is reserved from the volume reserved = LUN_SPACE * fractional_reserve
Fractional Reserve - Example Available space Available space 20GB 36GB 60GB Available space 40GB Reserve Reserve 24GB LUN2: 20GB LUN2: 20GB LUN2: 20GB 40GB 40GB 40GB LUN1: 20GB LUN1: 20GB LUN1: 20GB At least one snapshot fractional_reserve = 60 No Snapshots At least one snapshot fractional_reserve = 100
Fractional Reserve - Example Available space Available space 40GB 48GB 60GB Available space Reserve 20GB 12GB Reserve LUN2: 20GB LUN2: 20GB LUN2: 20GB 40GB 40GB 40GB LUN1: 20GB LUN1: 20GB LUN1: 20GB At least one snapshot fractional_reserve = 60 No Snapshots At least one snapshot fractional_reserve = 100
Snap Reserve • Set on a per volume basis • Determines if space is allocated from the volume for Snapshot data at volume creation time • Possible settings • 20% (default for NAS) • 0% (current default for SAN) • 0% to 100%
Snapshot Auto Delete • Set on a per volume basis • Determines when (if) snapshots will be automatically deleted • Makes NetApp like competition but better • Possible settings • Triggers • Volume • Snap Reserve • Space Reserve • Order • delete_order – oldest, newest • defer_delete – scheduled, user created, prefix, none • snapmirror/dump – try, disrupt • Snapshots locked by clones, cifs or restores will not be deleted – change planned for 7.3
Volume Auto Grow • Set on a per volume basis • Determines if a volume should grow when it nearly full • Possible settings • ON • Maximum growth • Increment size • OFF • Try_first option determines whether auto_grow or auto_delete is attempted first
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Space Usage in a volume SnapshotAvailable SnapshotAvailable SnapshotAvailable 20GB 20GB 20GB Available space Available space Available space 50GB 50GB 80GB 30GB 30GB TestLUN TestLUN Step #2:Create 30GB LUN df output:/vol/myvol - available 50GB - used 30GB/vol/myvol/.snapshot - available 20GB - used 0 GB Step #3:Write 30(+) GB to TestLUN df output:/vol/myvol - available 50GB - used 30GB/vol/myvol/.snapshot - available 20GB - used 0 GB Step #1:Create “100GB” volume myvol df output:/vol/myvol – available 80GB/vol/myvol/.snapshot – 20GB available
Space Usage in a volume 10GB Snapshot used SnapshotUsed SnapshotAvailable 20GB 20GB 10GB Snapshot Avail Available space Available space 20GB 20GB Available space 20GB Reserve Reserve 30GB 30GB Reserve 30GB 30GB 30GB TestLUN TestLUN 30GB TestLUN Step #5:Overwrite first 10GB of TestLUN df output:/vol/myvol - available 20GB - used 60GB/vol/myvol/.snapshot - available 10GB - used 10 GB Step #6:Overwrite second 10GB of TestLUN df output:/vol/myvol - available 20GB - used 60GB/vol/myvol/.snapshot - available 0GB - used 20 GB Step #4:Create snapshot #1 df output:/vol/myvol - available 20GB - used 60GB/vol/myvol/.snapshot - available 20GB - used 0 GB
Space Usage in a volume 30GB Snapshot used 30GB Snapshot used 30GB Snapshot used 10GB Available space 10GB Available space 10GB Available space Reserve Reserve Reserve 30GB 30GB 30GB 30GB 30GB 30GB TestLUN TestLUN TestLUN Step #7:Overwrite last 10GB of TestLUN df output:/vol/myvol - available 10GB - used 70GB/vol/myvol/.snapshot - available 0GB - used 30 GB Step #8:Re-overwrite another 10GB of TestLUN df output:/vol/myvol - available 10GB - used 70GB/vol/myvol/.snapshot - available 0GB - used 30 GB Step #9:Create snapshot #2 df output:/vol/myvol - available 10GB - used 70GB/vol/myvol/.snapshot - available 0GB - used 30 GB
Space Usage in a volume Snapshot used Snapshot used Snapshot used 40GB 40GB 50GB Reserve Reserve 30GB 30GB 30GB Reserve 30GB 30GB TestLUN TestLUN 30GB TestLUN Step #12:Overwrite another 10GB of TestLUN df output:/vol/myvol - available 0GB - used 80GB/vol/myvol/.snapshot - available 0GB - used 50 GB Step #10:Overwrite first 10GB of TestLUN df output:/vol/myvol - available 0GB - used 80GB/vol/myvol/.snapshot - available 0GB - used 40 GB Step #11:Create snapshot #3 Fails because there is no free space in the volume
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Space Management – Default Configuration • Default Configuration: • Guarantee = volume • LUN reservation = on • Fractional_reserve = 100% • Snap_reserve = 0% • Auto_delete = off • Auto_grow = off • Try_first = NA Available space 40GB Reserve 30GB 30GB TestLUN
Space Management – Default Configuration • Positives • Easy to manage/monitor space • Running “out” of space only results in no additional snapshots being created • SnapShots and active LUNs will always be available • Volumes are independent of each other • Negatives • Requires 2X + Δ space requirement
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Thin Provisioning Snapshot Space - Autodelete • Auto Delete Configuration: • Guarantee = volume • LUN reservation = on • Fractional_reserve = 10% • Snap_reserve = 0% • Auto_delete = volume • Auto_grow = off • Try_first = snap_delete 10GB Reserve Available space 60GB 30GB TestLUN
Thin Provisioning Snapshot Space - Autodelete • Positives • Easy to monitor/understand space just volume • Sacrifices snapshots before active LUNs • Volumes are independent of each other • Looks like the competition • Negatives • Doesn’t use shared space from the aggregate • Until ONTAP 7.3 have to be cautious with using FlexClones
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Thin ProvisioningSnapshot Space – Autogrow • Auto Grow Configuration: • Guarantee = volume • LUN reservation = on • Fractional_reserve = 10% • Snap_reserve = 0% • Auto_delete = volume • Auto_grow = on • Try_first = auto_grow
Thin ProvisioningSnapshot Space – Autogrow • Positives • Uses shared free space from the aggregate for possible growth • Sacrifices snapshots before active LUNs • Can tune amount of thin provisioning per volume • Works even with a smaller number of volumes • Negatives • Volumes are not completely independent of one another • Always the case when using shared free space • Growth in one volume can limit growth of another
Autogrow Example - Starting Point volume used / size / consumedvol1 = 0 / 100 / 100vol2 = 0 / 100 / 100vol3 = 0 / 100 / 100------------------------------------total = 0 / 300 / 300free = 30
Autogrow Example - After volume growth volume used / size / consumedvol1 = 90 / 100 / 100vol2 = 120 / 120 / 120vol3 = 50 / 100 / 100------------------------------------total = 260 / 320 / 320free = 10 • Single volume grows to 120GB
Autogrow Example - After another volume grows volume used / size / consumedvol1 = 110 / 110 / 110vol2 = 120 / 120 / 120vol3 = 60 / 100 / 100------------------------------------total = 290 / 330 / 330free = 0 • Single volume grows to 120GB • Another volume grow to 110GB • Aggregate is now full
Autogrow Example – After freeing space volume used / size / consumedvol1 = 110 / 110 / 110vol2 = 110 / 110 / 110vol3 = 60 / 100 / 100------------------------------------total = 0 / 320 / 320free = 10 • Space is freed within the volume - manual snapshot deletion • Volume is manually resized
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Thin Provisioning Snapshot Space Guarantee = none • None Guarantee Configuration: • Guarantee = none • LUN reservation = on • Fractional_reserve = 0% • Snap_reserve = 0% • Auto_delete = volume • Auto_grow = off • Try_first = auto_delete
Thin Provisioning Snapshot Space Guarantee = none • Positives • Uses shared space from the aggregate • Negatives • Volumes are not independent of one another • Activity in some volumes can cause all volumes with a none guarantee to go offline • Generally only makes sense with a large number of volumes
Thin Provisioning Snapshot Space Guarantee = none volume used / size / consumedvol1 = 0 / 150 / 0vol2 = 0 / 150 / 0vol3 = 0 / 150 / 0------------------------------------total = 0 / 450 / 0free = 330 • At volume creation no space is allocated from the aggregate
Thin Provisioning Snapshot Space Guarantee = none volume used / size / consumedvol1 = 40 / 150 / 40vol2 = 100 / 150 / 100vol3 = 100 / 150 / 100------------------------------------total = 240 / 450 / 240free = 90
Thin Provisioning Snapshot Space Guarantee = none volume used / size / consumedvol1 = 90 / 150 / 90vol2 = 120 / 150 / 120vol3 = 120 / 150 / 120------------------------------------total = 330 / 450 / 330 free = 0 • Highlights both the advantage and disadvantage of a none guarantee • Allows vol2 and vol3 to use space which vol1 is not using • If any volume consumes more space all volume with a guarantee of none are going to go offline on the next write
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Thin ProvisioningLUNs – Guarantee = NONE • Guarantee = none configuration: • Guarantee = none • LUN reservation = on • Fractional_reserve = NA (no snapshots) • Snap_reserve = 0% (no snapshots) • Auto_delete = snap_reserve (safety measure) • Auto_grow = off • Try_first = snap_delete
Thin Provisioning LUNs – Guarantee = NONE • Positives • Uses shared free space from the aggregate • Works with SDW without issues • Negative • Limited by BURT 210149Not possible to configure a LUN larger than actual free space in the aggregate • For example, aggregate has 200GB free and you create a 400GB volume • It is possible to create 2 x 200GB or 4 x 100GB • It is not possible to create 1 x 201GB LUN
Agenda • What is Flexible or Thin Provisioning • Types of Thin Provisioning • ONTAP Variables • Space usage in a volume • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled
Thin ProvisioningLUNs – reservation disabled • LUN reservation disabled configuration: • Guarantee = volume • LUN reservation = off • Fractional_reserve = NA (no snapshots) • Snap_reserve = 0% (no snapshots) • Auto_delete = snap_reserve (safety measure) • Auto_grow = on • Try_first = autodelete
Thin ProvisioningLUNs – reservation disabled • Positives • Volumes are independent of one another • Amount of thin provisioning can be tuned per volume • Negative • Doesn’t currently work with SDW • With Data ONTAP DSM 3.0, SDW is not needed for multipathing • Casablanca (May 2007) will support this!!
Agenda - Summary • Configurations • Default Configuration • Snapshot - Snapshot Auto delete • Snapshot - Volume Auto grow • Snapshot - Volume guarantee none • LUN - Volume guarantee none • LUN - LUN reservation disabled