cookbook 'zfs_linux', '= 1.8.1'
zfs_linux (7) Versions 1.8.1 Follow4
Installs/Configures zfs on linux
cookbook 'zfs_linux', '= 1.8.1', :supermarket
knife supermarket install zfs_linux
knife supermarket download zfs_linux
zfs_linux Cookbook
Installs & configures zfs on linux. Currently primarily targeting Ubuntu.
Requirements
Ubuntu 12.04+
Usage
zfs_linux::default
Just include zfs_linux
in your node's run_list
:
{ "name":"my_node", "run_list": [ "recipe[zfs_linux]" ] }
zfs_linux::auto-snapshot
Installs the zfs-auto-snapshot package, which automatically sets up rotating snapshots (hourly snapshots kept for a day, daily snapshots kept for a month, etc).
zfs_linux::auto-scrub
Uses cron.d (via the cron cookbook) to setup cron jobs on Sunday morning for each zpool. If greater than 4 zpools are present, runs the checks once a month on the first Sunday.
zfs_linux::snapshot-pruning
Complements the auto-snapshot recipe by providing a mechanism (via attributes) for controlling how many snapshots are retained on a daily basis. Action is only taken if attributes like the following are set:
"zfs": { "filesystems": [ { "zfsfilesytem1": { "zpool": "zpool1", "snapshot_retention": { "monthly": "3", "weekly": "2", "daily": "15" } } }, ... ] }
The retention values (each are optional) dicate the number of the most recent snapshots to keep. So in the example above, each day the snapshots of zpool1/zfsfilesystem1 will be evaluated and only the 15 most recent daily snapshots will be kept, etc. For any given snapshot type you can set the value to "0" to have all snapshots of that type deleted.
zfs_linux::source
This recipe was developed to allow the deployment of ZoL from a specific commit. Apply it to your node to pull down the ZFS revision from git (specified in your node's attributes).
WARNING: On Debian-family systems, the current build method will disable automatic updates for your kernel because the ZoL packages will be built for the kernel that is running at the time of compilation. Do not apply this without a process in place for monitoring security updates and applying them manually in the following manner:
1. Update your system kernel packages
2. Disable the auto-start of any services that depend on your ZoL-mounted volumes
3. Reboot into the new kernel
4. Delete the zfs & spl directories in /var/chef/cache/
5. Perform a chef-client run
6. Enable auto-start again for your node's services
7. Reboot
Contributing
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write you change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
License and Authors
Copyright 2014, Biola University
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
apt >= 0.0.0 |
cron >= 0.0.0 |
ark >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Foodcritic Metric
1.8.1 failed this metric
FC002: Avoid string interpolation where not required: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/source.rb:87
FC002: Avoid string interpolation where not required: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/source.rb:164
FC023: Prefer conditional attributes: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/snapshot-pruning.rb:22
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/auto-scrub.rb:20
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/auto-scrub.rb:22
1.8.1 failed this metric
FC002: Avoid string interpolation where not required: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/source.rb:164
FC023: Prefer conditional attributes: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/snapshot-pruning.rb:22
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/auto-scrub.rb:20
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c524f768280bf8245b285038/zfs_linux/recipes/auto-scrub.rb:22