BSDCan2017 - 0722

BSDCan 2017
The Technical BSD Conference

Matt Ahrens
Day Talks #1 - 9 June - 2017-06-09
Room DMS 1140
Start time 13:30
Duration 01:00
ID 854
Event type Lecture
Track Invited Talks
Language used for presentation English

Building products based on OpenZFS, using channel programs

Integrating OpenZFS into a product requires programmatic administration - writing a program to tell ZFS to create filesystems, set properties, and destroy snapshots. This talk introduces a new API for doing so: OpenZFS Channel Programs (aka “zfs program” or “ZCP”). User-defined compound operations with flexible error handling can be executed quickly and atomically. The desired semantics are expressed by writing a script in a new domain-specific language based on Lua. The kernel atomically executes the script in a safe environment.

This talk will cover:

  • examples of when channel programs are especially helpful
  • how to write channel programs
  • how channel programs are implemented internally
  • safeguards implemented to prevent problems with running an interpreted program in the kernel
  • how Delphix has used channel programs to improve performance and fix bugs
  • why we called it “channel programs”

This talk will not cover:

  • channel partner programs
  • Using VARs to maximize your sales