1 / 52

A New Star Is Born

A New Star Is Born. Before we start… Introducing Maklee Engineering Solutions High quality services in the area of: Performance improvements Oracle services / SQL tuning Platform migration Programming / Custom engineering Custom training. OpenVMS Backup & V8.3 New Features. Guy Peleg

Gabriel
Download Presentation

A New Star Is Born

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A New Star Is Born • Before we start… • Introducing Maklee Engineering Solutions • High quality services in the area of: • Performance improvements • Oracle services / SQL tuning • Platform migration • Programming / Custom engineering • Custom training

  2. OpenVMS Backup & V8.3 New Features Guy Peleg President Maklee Engineering guy.peleg@maklee.com

  3. Agenda • Main Algorithms • Performance considerations • V8.3 New Features

  4. 30,000 feet overview • Reads data from disk into buffers in memory • Writes buffers from memory to target saveset • Savesets are sequential files • Fixed length record • RMS is used when writing/reading savesets to/from disks • SYS$QIO is used when writing/reading savests to/from tape drives

  5. BACKUP • BACKUP.EXE • DCL Utility to parse qualifiers and call the main shareable image • SYS$UPDATE:BACKUP.CLD • BACKUPSHR.EXE • parses API and branches to action routines • BACKUP operates in 3 main phases • Init phase • Open File phase • Map & I/O phase

  6. Init Phase • Decides on useable buffer space • WSQUOTA - WSQUOTA/64 + 300 + JPI_FILCNT * 512 • Creates each buffer using $EXPREG • Watch out: This is R/W virtual address space charged against PGFLQUOTA • Opens and reads in first directory

  7. Open File Phase • Looks for the next input file • Open file and read file header for mapping pointers • Map file to buffers • Maps each file extent • Breaks down I/O to fill a buffer • Max. buffer size is 63.5 KB • Even for a nicely contiguous file • Stops when either FILLM has been reached or all buffers have file I/O mapped (WSQUOTA) • No file data I/O at this point • No I/O to output save set at this point

  8. Map and I/O Phase • Sort all mapped I/Os by increasing LBN numbers • Without it performance decreases by ~10% • Submit I/Os in LBN order in a tight loop • Pre V8.3 algorithm (or latest V7.3-2, V8.2 ECOs) • If DIOLM is reached wait 10ms • Large DIOLM significantly impacts performance • Wait for I/Os to complete • Write data to output device • Goto phase 1 if last buffer written

  9. Disk Queue Load • BACKUP uses a large buffer pool to read file data in an optimized manner • Algorithm was designed 20 years ago • All reads for the entire buffer pool are issued concurrently • Over time buffer pools have gotten larger & the I/O subsystem’s tolerance of being flooded with large number of I/Os has decreased • Especially true with EVA & XP storage controllers • A picture is worth a thousand words….

  10. FC Queue Depth Very high peak, BACKUP blocks production I/O

  11. FC Queue Depth – Better Balance Low peak, BACKUP no longer blocks production I/O

  12. Port Queue Depth vs. Read KBS Note the Read KBS (blue) value on this Port

  13. Port Queue Depth vs. Read KBS Read KBS on this Port remains the same. Lower DIOLM value keeps a similar BACKUP throughput.

  14. Impact of High FC Queue Depth During periods of high queue depth, VDisk Latencies exceed 100 milliseconds (that’s 1/10th of a second!!)

  15. Impact of Lowered FC Queue Depth With lowered queue depth, VDisk Latencies only once exceed 10 milliseconds (that’s 1/100thof a second – much better)Production I/O workload does not suffer due to BACKUP jobs.

  16. Disk Queue Load • Pre V7.3-2 & V8.2 (plus patches) behavior • issue as much I/Os possible allowed by DIOLM • Continue issuing I/Os until we hit SS$_EXQUOTA • Wait for I/Os to complete and flood the I/O subsystem again • The New algorithm • Issue the disk reads in n parallel AST threads • The completion AST of each thread issues the next I/O • By default use 8 parallel I/O threads • Number of threads controlled by new /IO_LOAD qualifier

  17. Disk Queue Load • Better performance • Idle EVA controller showed 15% reduction in elapsed time • Results are not linear – busy controllers will witness more significant (dramatic !) improvement • Direct attached SCSI disk showed ~5% improvement • YMMV

  18. Performance Considerations

  19. Performance Considerations • Why BACKUP performance is an issue? • Only 24 hours a day for incremental BACKUP • Small window for backup • Even smaller window for restore in case of emergency • Always test your restore procedures !

  20. Process Quotas • System Manager’s Manual Volume 1: Essentials • Chapter 11.7 • WSQUOTA • Initial value of 10,000 pagelets, increment by 5,000 • Over 100,000 performance decreases • FILLM • Equal to 100 (mostly sufficient), increment by 10 • Use larger values if input disk contains many very small files or is highly fragmented • Effectiveness limited by WSQUOTA • DIOLM • Equal to 100 (mostly sufficient), increment by 10 • 8 for Modern storage controllers • Larger values can cause disk I/O subsystem hangs or resets without any performance advantage

  21. Process Quotas Second option is 15% faster • Less is more… • DIOLM=32767, BIOLM=32767, WSDEF=WSQUOTA=WSEXTENT=3000000 VS. DIOLM=8, BIOLM=150, WSDEF=10000, WSQUOTA=20000, WSEXTENT=30000

  22. Media Compaction • INIT/MEDIA=COMPACTION • BACKUP/MEDIA_FORMAT=COMPACTION • Compaction performed by the hardware • Default is no compaction • Compaction ratio depends on data and drive • Tape drives are optimized to use compaction

  23. SDLT 320 Compaction Performance MB’s Per Second (More is better)

  24. Performance Considerations • BACKUP / GROUP • Defines the number of blocks backup places in each redundancy group. • /GROUP_SIZE = 10 is the default • Modern drive technology makes the XOR group feature obsolete • /GROUP_SIZE = 0 to save 10% tape space • BACKUP/CRC • Stores CRC in each backup buffer • Does not increase the tape utilization as cell is part of the record header • Increases CPU consumption • With modern tape drives consider using /NOCRC (but need to understand the possible risk)

  25. Performance Considerations • Tape drives are getting faster…. • Ultrium-960 can write @160 MB/sec • With Ultrium drives elapsed time for Backup will be shorter but during this time the CPU may get overloaded (calculating CRC) • 90% CPU utilization on DS25 writing to Ultrium-460 drive (@ 40MB/sec) • May impact the availability of other applications on the system

  26. Performance Considerations • /BLOCK_SIZE • Specifies the size of output block size in bytes • Larger blocks -> less I/Os -> better performance • Default of 32256 when writing to disks • Default of 8192 when writing to tapes • Modern tape drives optimized for large I/Os – use maximum supported block size – 65535 • BACKUP is optimized to save large files • Same amount of data in small files vs. one large file may show up to 40 times difference.

  27. RMS Optimizations • SET RMS • /BLOCK=127 | 124 • /BUFFER = 8 • /EXTEND=65535 (for large savesets) • /NETWORK=127 • RMS_SEQFILE_WBH (Prior to V8.3) • With recent versions VMS now sets RAH & WBH

  28. BACKUP/FAST • Fast file scan • Large number of input files • Small number of files meet selection criteria Elapsed time to backup all files created today (less is better)

  29. New Features

  30. Improved CTRL-T information • Traditional CTRL-T information showed the name of the current file being saved/restored and the total number of save-set blocks processed $ backup IA64:[KITS]I64XB37.BCK/sav $5$dka100:/ima MIKAXP::_VTA61: 14:36:38 BACKUP CPU=00:00:00.86 PF=908 IO=2192 MEM=256 Restoring file: $5$DKA100:[DWMOTIF_SUPPORT_I64XB37.KIT]HP.SI$COMPRESSED;1 Saveset volume:1, saveset block:266 (32256 byte blocks) • Can you tell how much data restored so far? • Can you tell when the restore will be done? • Introducing the new & improved CTRL-T

  31. Improved CTRL-T information IPL31::_VTAT7: 14:46:27 BACKUP CPU=00:00:03.40 PF=6298 IO=18408 MEM=465 Restoring file: DKA100:[DWMOTIF_SUPPORT_I64XB37.KIT]HP.PCSI$COMPRESSED;1 Saveset volume:1, saveset block:720 (32256 byte blocks) 22.14MB restored out of 1.18GB, 1% completed Restore rate: 965KB/sec, estimated completion time: 15:07:31.85

  32. Improved CTRL-T information • Note the message says ESTIMATED !!! • Fancy CTRL-T message displayed when • Restoring a saveset • Creating an image backup • Counters are updated when a file marked nobackup is encountered • When the amount of data to be saved is unknown, only the rate and total amount of data processed so far is displayed • CTRL-T can not be used in batch….and BACKUP is usually running in batch…

  33. BACKUP/PROGRESS_REPORT=n • /PROGRESS_REPORTS writes CTRL-T style message to the output device every given interval • n is the number of seconds between intervals $ back IA64:[KITS]I64XB37.BCK/sav dka100:/ima/progress=10 %BACKUP-I-PROGRESS, progress report generated at 4-JAN-2006 15:00:54.47 Restoring file: DKA100:[DWMOTIF_SUPPORT_I64XB37.KIT]HP1.PCSI$COMPRESSED;1 Saveset volume:1, saveset block:170 (32256 byte blocks) 5.22MB restored out of 1.18GB, 0% completed Restore rate: 535KB/sec, estimated completion time: 15:39:28.28

  34. “lost” saveset attributes • A saveset transferred using FTP or compressed and decompressed using ZIP will lose it’s RMS attributes • An attempt to process the saveset will fail • %BACKUP-F-NOTSAVESET • Fortunately the correct RMS settings are stored in the saveset header

  35. BACKUP / REPAIR • /REPAIR instructs BACKUP to attempt and restore the correct RMS attributes $ backup images.bck/sav [.exes]/repair %BACKUP-I-REPAIRED, saveset attributes changed to RFM=FIX, MRS=32256 IPL31::GUY 14:58:58 BACKUP CPU=00:00:10.89 PF=7765 IO=71628 MEM=409 Restoring file: UPS$:[000000.EXES]BACKUPSHR.EXE;16

  36. Compression Support in BACKUP • BACKUP supports data compression using ZLIB. • ZLIB’s advantages: • Free • Legally unencumbered • May be included in commercial applications • Lossless data compression library • Never expands the data • Unlike DCX may be used to compress stream of bytes • Does not need to analyze the file in advance • Maximum compression factor 1:1000 • 50MB file filled with zeros compressed to 49KB • Realistic numbers are in the range of 2:1 to 5:1 • http://www.zlib.net

  37. Compression support in BACKUP • ZLIB routines are shipping in a new shareable image • SYS$LIBRARY:COMPRESS$SHR.EXE • SYS$LIBRARY:COMPRESS$SHR_EV6.EXE (alpha only) • New qualifier - /DATA_FORMAT=COMPRESSED • Instructs BACKUP to create a compressed save-set • Does not need to be specified on the restore command • Initially viewed as a feature to save space….but turned out to be a significant performance improvement (well…at least in some cases)

  38. Compression support in BACKUP • The slower the I/O subsystem the bigger the performance win • Big win for network operations • Big win for MSCP served devices • doubles the CPU consumption • On average BACKUP completes 2-5 times faster • Useful when shipping dump files • 800MB dump file was compressed to 75MB • No support for writing compressed savesets to tapes • Do not encrypt & compress…..at least for now

  39. Compression support in BACKUP • Compressed save-sets have variable length records • Instead of fix • First record is not compressed • Detect compressed savesets • Force largest record = value of /BLOCK_SIZE • To fix attributes after file transfer • $SET FILE X.CBCK/ATTRIB=(RFM=VAR,LRL=32256,MRS=32256)

  40. IPL31> dir cxx*.exe/siz=all Directory SYS$COMMON:[SYSEXE] CXX$COMPILER.EXE;1 39.68MB/39.68MB CXX$DEMANGLE.EXE;1 41KB/42KB CXX$LINK.EXE;1 166KB/166KB Total of 3 files, 39.89MB/39.89MB IPL31> backup cxx*.exe cxx.bck/sav/log %BACKUP-W-NOFILES, no files selected from DSA5:[SYS0.][SYSEXE]CXX*.EXE;* %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$COMPILER.EXE;1 %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$DEMANGLE.EXE;1 %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$LINK.EXE;1 IPL31> dir cxx.bck/siz Directory SYS$SYSROOT:[SYSEXE] CXX.BCK;1 44.60MB Total of 1 file, 44.60MB

  41. IPL31> dir cxx*.exe/siz Directory SYS$COMMON:[SYSEXE] CXX$COMPILER.EXE;1 39.68MB CXX$DEMANGLE.EXE;1 41KB CXX$LINK.EXE;1 166KB Total of 3 files, 39.89MB IPL31> backup cxx*.exe cxx.cbck/sav/data=comp/log %BACKUP-W-NOFILES, no files selected from DSA5:[SYS0.][SYSEXE]CXX*.EXE;* %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$COMPILER.EXE;1 %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$DEMANGLE.EXE;1 %BACKUP-S-COPIED, copied DSA5:[SYS0.SYSCOMMON.][SYSEXE]CXX$LINK.EXE;1 %BACKUP-I-COMPRESS, data compressed by 66% IPL31> dir cxx.cbck/siz Directory SYS$SYSROOT:[SYSEXE] CXX.CBCK;1 14.82MB Compression support in action

  42. Encryption support in BACKUP • BACKUP uses the Encrypt LP for data encryption • How does it work? • At run-time, BACKUP generates a random encryption key used for encrypting the save-set records • The encryption key is being encrypted using a user provided key and stored in the save-set header • Decryption – the encryption key is retrieved by decrypting the key stored in the header using the user provided key • BACKUP/ENCRYPT=(…) • NAME • ALGORITHM • VALUE

  43. Encryption support • Existing limitations • Uses DESCBC algorithm (old, slow & expensive) • User provided algorithm is only used for encrypting the key • DESCBC is still used for encrypting the data • V8.3 adds AES encryption support to BACKUP • Modern & stronger encryption • User provided algorithm is used for encrypting the data • DESCBC is still used by default (to maintain backword compatibility) • The following algorithms supported by BACKUP: • AESCBC128, AESCBC192, AESCBC256, AESECB, AESCFB and AESOFB

  44. Encryption support - examples • Create an encrypted save-set, specify the encryption key at run-time $ backup *.com coms.bck/sav/encrypt=algorithm=aes Enter key value: Verification: • Create an encrypted save-set, create the encryption key from DCL $ encryp/create_key guy "This is a nice key called guy"/aes $ backup *.com coms.bck/sav/encrypt=(alg=aes,name=guy) $ backup coms.bck/sav […] /encrypt=(alg=aes,name=guy)

  45. Compaction & Encryption • Compaction & Encryption require additional CPU work • Elapsed time will be impacted

  46. Saving 2 GB file rx2600 1.3 GHz OpenVMS V8.3 HSG80 Seconds to save a file (Less is better)

  47. BACKUP & DVE • OpenVMS V7.3-2 added Dynamic Volume Expansion (DVE) support • Two new terms introduced: Logical Volume size and Expansion Volume size • Controlled by the /SIZE & /LIMIT qualifiers to the INITIALIZE & SET VOLUME commands Error count 0 Operations completed 8936 Owner process "_VTAT7:" Owner UIC [NPAR_BUILD] Owner process ID 2817CDDC Dev Prot S:RWPL,O:RWPL,G:R,W Reference count 2 Default buffer size 512 Current preferred CPU Id 0 Fastpath 1 Total size 33.91GB Sectors per track 96 Total cylinders 7719 Tracks per cylinder 96 Logical Volume Size 2.38GBExpansion Size Limit 190.96GB Allocation class 5

  48. BACKUP & DVE • BACKUP had no knowledge about DVE • DVE characteristics of a device were lost when image backup performed • Customers had to manually set DVE characteristics (assuming they noticed it was lost ;-) • BACKUP now fully supports DVE • VMS732_BACKUP-V0600

  49. BACKUP & DVE – Expansion size • The volume expansion size is being recorded in the save-set header • BACKUP/LIST displays the expansion size if it exists in the save-set • When restoring a save-set (using /image) or performing disk-to-disk image backup, the target device inherits the expansion size limit of the input device • New qualifiers • /IGNORE=LIMIT prevents the target device from inheriting the expansion size • /LIMIT=n added to allow overriding the expansion size stored in the save-set header • Corresponding to $INIT/LIMIT

More Related