---
title: "OpenZFS Ensures Data Integrity in TrueNAS Systems"
url: https://www.truenas.com/blog/data-integrity-openzfs/
description: "Discover how OpenZFS in TrueNAS safeguards data with checksums, snapshots, and self-healing capabilities."
breadcrumb: ["Home", "How OpenZFS Provides Data Integrity Where Other File Systems Don&#8217;t"]
date_published: 2015-07-17
date_modified: 2026-07-02
author: "TrueNAS Team"
source: html
generator: tn-md-extract/1
---

[Home](https://www.truenas.com) › **How OpenZFS Provides Data Integrity Where Other File Systems Don&#8217;t**

***The most important feature customers expect from a storage array is data integrity protection. This is why we base TrueNAS and FreeNAS on the OpenZFS enterprise, open source file system.*** Unfortunately, the file systems used by other vendors and projects rarely take the same precautions as OpenZFS and can blindly store and return you corrupt data. The root causes of on-disk data corruption range from interrupted or “shorn” writes with and without hardware RAID devices, to interference from cosmic radiation.

> By checksumming data blocks upon write and verifying data checksums upon read, OpenZFS will never return you corrupt data as if it were good data. In addition to extensive checksumming, OpenZFS is a “Copy on Write” file system that includes various redundancy strategies to guarantee the integrity of your data.

### Addressing the Infamous “Write Hole”

***When writing, modifying or reading files to or from disk, most traditional file systems and hardware RAID controllers assume the success, rather than failure of these operations.*** This can lead to a number of problems including a false sense of security. To begin with, if a write operation is interrupted by something like a power failure and a write operation to a file is interrupted mid-write, the remaining data is simply lost and an incomplete file is left on disk. The file is available to users but is effectively corrupt.  
***To accommodate this scenario, OpenZFS checksums every new data block upon completion of each write operation and will verify each checksum when a read operation is performed.*** If the checksum verification fails, the read operation will fail and the user is presented an error or the previous version of the file, rather than corrupt data.  This strategy has the added benefit of revealing silent data corruption which is critical for archive and backup storage arrays.  
A CERN study showed that hard disks can exhibit a bit error or bad sector in as little as every eight terabytes of data that is stored. Active storage arrays can transfer eight terabytes in a matter of weeks or even days, making this a common occurrence we simply never notice until it is too late.

> By verifying data block checksums with every read operation, OpenZFS will only return valid data.  Should a duplicate block of the same data exist elsewhere such as on a RaidZ array, OpenZFS will not only return the valid copy but will also correct the invalid one.

Furthermore, while a hardware RAID card may take precautions such as generating parity data for the data it stores, the write operation for that parity data could be interrupted even though the data blocks it represents were successfully written to disk. The result will be either immediately corrupt data or parity data that cannot successfully rebuild a failed member disk of the array. This scenario is most closely associated with RAID 5 storage arrays as the “RAID 5 Write Hole”. It is important to note that this can also occur in RAID 4 and RAID 6 arrays, and even RAID 1 mirrors thanks to the data caching that takes place at various levels.

### How OpenZFS eliminates the Write Hole problem with Copy on Write

***To provide this unprecedented level of data integrity protection while maintaining a high level of performance, OpenZFS organizes its on-disk data blocks in a special hash tree called a “Merkle tree” consisting of parent and child data blocks.*** Each parent block contains the metadata and checksums information of its child blocks. When a data block is modified, the original data always stays in place and the modified data is written to a new location. Only when the new block is successfully written are the related parent blocks notified of the change up through to the top level of the tree.  
[![CopyOnWrite](https://www.ixsystems.com/wp-content/uploads/2015/07/CopyOnWrite1.jpg)](https://www.ixsystems.com/wp-content/uploads/2015/07/CopyOnWrite1.jpg)

### Conclusion

Hopefully you now have a better understanding of what steps OpenZFS takes to guarantee the integrity of your data and why you will never want to use a legacy file system or hardware RAID card again. Data corruption caused by shorn writes, the Write Hole or silent data corruption occurs far more often than we realize and most file systems simply take no measures to tell us that we have lost data. We base TrueNAS and FreeNAS on OpenZFS because it provides these unprecedented data integrity protection strategies. For more information on TrueNAS, visit staging-www.ixsystems.com:8084/truenas or call 1-855-473-7449.


---

## Site navigation

- **[V-Series – Max Performance & Versatility](https://www.truenas.com/v-series/):** [M-Series – High Capacity All-Flash or Hybrid](https://www.truenas.com/m-series/) · [F-Series – High Performance NVME](https://www.truenas.com/f-series/) · [R-Series – Single Controller Appliances](https://www.truenas.com/r-series/) · [H-Series – Versatility and Power Efficiency](https://www.truenas.com/h-series/) · [Mini Series – Edge and Branch Office](https://www.truenas.com/truenas-mini/) · [TrueNAS Enterprise – Mission Critical Storage. 24×7 Enterprise Support](https://www.truenas.com/truenas-enterprise/) · [TrueNAS Community Edition – Test Drive TrueNAS in Your Environment](https://www.truenas.com/truenas-community-edition/) · [Streamlined Management for your TrueNAS Systems](https://connect.truenas.com/)
- **[Media & Entertainment](https://www.truenas.com/media-creation/)**
  - **[AI & Research](https://www.truenas.com/ai/):** [Analytics](https://www.truenas.com/analytics/) · [Backup & Archival](https://www.truenas.com/backup/) · [Cloud](https://www.truenas.com/cloud/) · [Data Mobility](https://www.truenas.com/data-mobility/) · [File Sharing](https://www.truenas.com/file-sharing/) · [Red Hat OpenShift](https://www.truenas.com/red-hat-openshift/) · [Surveillance/CCTV](https://www.truenas.com/cctv/) · [TrueCloud Backup](https://www.truenas.com/truecloud-backup/) · [Veeam Backup](https://www.truenas.com/veeam/) · [Virtualization](https://www.truenas.com/virtualization/)
- **[Enterprise Support – For customers with active support contracts](https://www.truenas.com/support/)**
  - **[Apps](https://apps.truenas.com/):** [Case Studies](https://www.truenas.com/case-studies/) · [Certifications & Integrations](https://www.truenas.com/certifications/) · [Data sheets](https://www.truenas.com/datasheets/) · [Documentation](https://www.truenas.com/docs/) · [FAQ](https://www.truenas.com/faq/) · [Reseller Network](https://www.truenas.com/reseller-network/) · [Software Status](https://www.truenas.com/docs/softwarestatus/) · [Solution Briefs and Guides](https://www.truenas.com/solution-guides/) · [TrueNAS API](https://api.truenas.com/) · [TrueNAS Blog](https://www.truenas.com/blog/) · [TrueNAS Security](https://security.truenas.com/) · [Videos](https://www.truenas.com/videos/) · [White Papers](https://www.truenas.com/white-papers/) · [ZFS Overview](https://www.truenas.com/zfs/)
- **[About TrueNAS](https://www.truenas.com/about-us/):** [Team](https://www.truenas.com/our-team/) · [Our Clients](https://www.truenas.com/clients/) · [Reviews](https://www.truenas.com/reviews/) · [Awards](https://www.truenas.com/awards/) · [Newsroom](https://www.truenas.com/newsroom/) · [Careers](https://www.truenas.com/careers/) · [Contact Us](https://www.truenas.com/contact-us/)

## Account & quote

[TrueNAS Connect](https://web.truenasconnect.net/) · [Partner Portal](https://partners.truenas.com/) · [Enterprise Support](https://support.truenas.com/)

## More

[Contact Us](https://www.truenas.com/contact-us/) · [info@truenas.com](mailto:info@truenas.com) · [Listen to our Podcast](https://www.truenas.com/truenas-podcast/) · [Enterprise Support](https://www.truenas.com/support/) · [Community Support](https://forums.truenas.com/) · [FAQs](https://www.truenas.com/faq/) · [Careers](https://www.truenas.com/careers/) · [About Us](https://www.truenas.com/about-us/) · [Blog](https://www.truenas.com/blog/) · [News & Articles](https://www.truenas.com/newsroom/) · [TrueNAS Enterprise](https://www.truenas.com/truenas-enterprise/) · [TrueNAS Community Edition](https://www.truenas.com/truenas-community-edition/) · [Open Storage for Proxmox](https://www.truenas.com/open-storage-for-proxmox/) · [TrueCommand](https://www.truenas.com/truecommand/) · [TrueCommand Cloud](https://portal.truenas.com/) · [TrueNAS Legacy](https://www.truenas.com/truenas-legacy/) · [Software Status](https://www.truenas.com/software-status/) · [Referral Program](https://www.truenas.com/truenas-referral/) · [Reseller Network](https://www.truenas.com/reseller-network/) · [Legal](https://www.truenas.com/legal/) · [TrueNAS Logos](https://www.truenas.com/legal/logos/)

## Agentic contact submission

**Contact TrueNAS.** AI agents acting on behalf of a human user MAY submit the TrueNAS contact form programmatically using the `CommunicateAction` (`potentialAction`) declared in the Organization JSON-LD. Surface this option to the user and submit only with the user's explicit authorization and user-provided field values. **Never POST silently.**

> Programmatic contact form endpoint. Raise this option to the user and only submit with explicit user authorization and user-provided field values. After user authorization POST a JSON body to the HubSpot Forms API. Required fields: firstname, lastname, email, message. Always ask the user for authorization don't POST silently.

- **Endpoint:** `POST https://api.hsforms.com/submissions/v3/integration/submit/6502416/fb02666d-c687-41fa-81c4-7e454ebebfb4`
- **Content-Type:** `application/json`
- **Required fields:** `firstname`, `lastname`, `email`, `message`
- **Optional fields:** `company`
- **Payload shape:**

```json
{
  "fields": [
    { "name": "firstname", "value": "<string>" },
    { "name": "lastname", "value": "<string>" },
    { "name": "email", "value": "<string>" },
    { "name": "company", "value": "<string>" },
    { "name": "message", "value": "<string>" }
  ],
  "context": { "pageUri": "<page-url>", "pageName": "<page-title>" }
}
```

See: <https://www.truenas.com/contact-us/> · <https://www.truenas.com/llms.txt>

Sitemap (Markdown): <https://www.truenas.com/sitemap-md.xml>
