- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- How to zero disk blocks?
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-18-2014 07:23 PM
03-18-2014 07:23 PM
How to zero disk blocks?
Does anyone know of a better method then the described below.
I want to write zeros to disk free space.
One method is to create file and then erase it, as per the following pseudo-code:
$ Create ZERO.TMP /Allocate=n
$ Set File/End ZERO.TMP
$ Delete/Erase ZERO.TMP;
If the whole disk is to be zeroed then:
$ Initialize/Erase=Init disk:
The reason for doing it is that HDS storage system can run ZPR (Zero Page Reclaim) Utility thus reducing storage usage. This should work for thin provisioning.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-18-2014 09:02 PM - edited 03-20-2014 07:23 PM
03-18-2014 09:02 PM - edited 03-20-2014 07:23 PM
Re: How to zero disk blocks?
Close.... except there is no $create/allocate
You can use $ COPY NL: ZERO.TMP/ALLO=1234
If you can use $ SET VOLUME/HIGH , then you don't even need the DELETE/ERASE because SET FILE/END will pre-write zeroes when HighWater marking is enabled.
Or create a relative file.
That will also be pre-zeroed (except block 1) with a single QIO (IO$_WRITEVBLK OR IO$M_ERASE)
$ create/fdl="fil; org rel; all 1234; buc 63; rec; siz 123" tmp.tmp
Cheers,
Hein
[Editted to make it more HWM and SET FILE/END more clear. Thanks John.]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2014 02:57 PM
03-20-2014 02:57 PM
Re: How to zero disk blocks?
Hi Bob,
Long time!
If you really want zeros, you'll need to be careful with DELETE/ERASE. It scrubs the blocks with the system security erase pattern, which is not necessarily zeros.
I believe if you have high water marking enabled, the SET FILE/END should fill blocks above the highwater mark file with zeros.
I'm not sure I understand why "ZPR" might help reduce storage usage, but if that's a good thing, perhaps you should ensure your system security erase pattern is zeros and set the volume to erase on delete? Deletes will be more costly, especially for large files, and users must understand that once they delete a file, it's really gone. No chance of scavenging it back.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-23-2014 02:56 PM
03-23-2014 02:56 PM
Re: How to zero disk blocks?
Hein,
Thanks for your advice I have picked up a thing or two from it.
BTW: I am aware that there is no “create/allocate” and that is why I indicated that this is a pseudo-code.
Regards, Bob.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-23-2014 02:58 PM
03-23-2014 02:58 PM
Re: How to zero disk blocks?
John,
Indeed - long time!
I would love know how to force "security erase pattern" to zero and I would appreciate some advise. At the moment it seems to work.
Setting volume ERASE_ON_DELETE and/or HIGHWATER_MARKING could dramatically affect performance at all times, while executing DELETE/ERASE only when it is performed. Hence I selected the later.
ZPR reduces storage when the disks (or LUNs in storage terminology) are thin provisioned. I this case we are getting charged only for what we actually use rather than for what is allocated to us. ZPR Utility runs on the storage server and hunts for storage blocks (42MB) and if finds a zeroed one id removes it from the set of blocks that make the LUN thus reducing used space. Hence the idea of zeroing unused disk space.
Regards, Bob.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-24-2014 08:07 AM
03-24-2014 08:07 AM
Re: How to zero disk blocks?
Bob,
I've played these games as well, because once a year I create a bootable OpenVMS image for our Sales Engineers with the latest (Attunity, RMS-Logger, ODBC,...) software installed and update temp licenses. After configuring I delete all .LOG and .TMP files, Purge everything and allocate all free blocks in a file to zero, before zipping up the result.
That saves 'tons' on the target zip and network.
>> Setting volume ERASE_ON_DELETE and/or HIGHWATER_MARKING could dramatically affect performance at all times,
Just SET VOLU/HIGH right before the SET FILE/END, and remove afterward... it's dynamic.
No need to dismount / re-mount a disk to activate.
fwiw... In your situation I would consider a specialized program to 'sweep' the disk free-space bitmap, a settable chunk at a time. Take out a volume lock, find first X (10,000?) freee cluster, QIO ERASE the corresponding LBN's (easy math), Release lock, wait Y (10) seconds and tackle the next chunk, untill EOF in BITMAP.SYS.
This will NOT get the free blocks in the per-cluster-member free block cache, but that's a good thing because it is expensive to flush those caches, and those blocks in the cache will be the first to be (re) used anyway!
Cheers,
Hein.