#
272461 |
|
02-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
241292 |
|
06-Oct-2012 |
avg |
zfs loader: treat plain pool name as a name of its root dataset
... as opposed to the previous behavior of treating it as boot dataset (specified by bootfs or default)
MFC after: 19 days
|
#
241290 |
|
06-Oct-2012 |
avg |
boot/zfs: a small whitespace cleanup
MFC after: 5 days
|
#
241289 |
|
06-Oct-2012 |
avg |
boot/zfs: call zfs_spa_init for all found pools
... and drop those for which it fails. Also, add more sanity checking to the function.
MFC after: 16 days
|
#
241283 |
|
06-Oct-2012 |
avg |
zfs boot: add code for listing child datasets of a given dataset
- only filesystem datasets are supported - children names are printed to stdout
To do: allow to iterate over the list and fetch names programatically
MFC after: 17 days
|
#
241282 |
|
06-Oct-2012 |
avg |
zfs boot: chose a "first" pool if none is explicitly requested
MFC after: 8 days
|
#
240346 |
|
11-Sep-2012 |
avg |
zfs boot: bring zap_leaf_chunk field names in sync with kernel code
This change is cosmetic.
MFC after: 10 days
|
#
239292 |
|
15-Aug-2012 |
ae |
Explicitly terminate the string after strncpy(3).
|
#
239068 |
|
05-Aug-2012 |
ae |
Teach the ZFS use new partitions API when probing. Note: now ZFS does probe only for partitions with type "freebsd-zfs" and "freebsd".
|
#
235394 |
|
13-May-2012 |
avg |
zfs boot: cleanup remnants of temporary compat code
MFC after: 1 month
|
#
235390 |
|
13-May-2012 |
avg |
zfs boot code: mark spa_t arguments as const where they are used as such
MFC after: 1 month
|
#
235364 |
|
12-May-2012 |
avg |
sparc64/zfs boot: take advantage of new libzfsboot capabilities
Also drop the now unneeded compatibility shims.
Tested by: marius MFC after: 1 month
|
#
235361 |
|
12-May-2012 |
avg |
zfs boot code: use %j and uintmax_t instead %ll and uint64_t in printfs
This is to silence warnings that result from different definitions of uint64_t on different architectures, specifically i386 and sparc64.
MFC after: 1 month
|
#
235329 |
|
12-May-2012 |
avg |
zfsboot/zfsloader: support accessing filesystems within a pool
In zfs loader zfs device name format now is "zfs:pool/fs", fully qualified file path is "zfs:pool/fs:/path/to/file" loader allows accessing files from various pools and filesystems as well as changing currdev to a different pool/filesystem.
zfsboot accepts kernel/loader name in a format pool:fs:path/to/file or, as before, pool:path/to/file; in the latter case a default filesystem is used (pool root or bootfs). zfsboot passes guids of the selected pool and dataset to zfsloader to be used as its defaults.
zfs support should be architecture independent and is provided in a separate library, but architectures wishing to use this zfs support still have to provide some glue code and their devdesc should be compatible with zfs_devdesc. arch_zfs_probe method is used to discover all disk devices that may be part of ZFS pool(s).
libi386 unconditionally includes zfs support, but some zfs-specific functions are stubbed out as weak symbols. The strong definitions are provided in libzfsboot. This change mean that the size of i386_devspec becomes larger to match zfs_devspec.
Backward-compatibility shims are provided for recently added sparc64 zfs boot support. Currently that architecture still works the old way and does not support the new features.
TODO: - clear up pool root filesystem vs pool bootfs filesystem distinction - update sparc64 support - set vfs.root.mountfrom based on currdev (for zfs)
Mid-future TODO: - loader sub-menu for selecting alternative boot environment
Distant future TODO: - support accessing snapshots, using a snapshot as readonly root
Reviewed by: marius (sparc64), Gavin Mu <gavin.mu@gmail.com> (sparc64) Tested by: Florian Wagner <florian@wagner-flo.net> (x86), marius (sparc64) No objections: fs@, hackers@ MFC after: 1 month
|
#
234898 |
|
01-May-2012 |
marius |
Add initial support for booting from ZFS on sparc64. At least on Sun Fire V100, the firmware is known to be broken and not allowing to simultaneously open disk devices, causing attempts to boot from a mirror or RAIDZ to cause a crash. This will be worked around later. The firmwares of newer sun4u models don't seem to exhibit this problem though.
Steps for ZFS booting:
1. create VTOC8 label # gpart create -s vtoc8 da0
2. add partitions, f.e.: # gpart add -t freebsd-zfs -s 60g da0 # gpart add -t freebsd-swap da0 resulting in something like: # gpart show => 0 143331930 da0 VTOC8 (68G) 0 125821080 1 freebsd-zfs (60G) 125821080 17510850 2 freebsd-swap (8.4G)
3. create zpool # zpool create bunker da0a or for mirror/RAIDZ (after preparing additional disks as in steps 1. + 2.): # zpool create bunker mirror da0a da1a # zpool create bunker raidz da0a da1a da2a ...
4. set bootfs # zpool set bootfs=bunker bunker
5. install zfsboot # zpool export bunker # gpart bootcode -p /boot/zfsboot da0
6. write zfsloader to the ZFS Boot Block (so far, there's no dedicated tool for this, so dd(1) has to be used for this purpose) When using mirror/RAIDZ, step 4. and the dd(1) invocation should be repeated for the additional disks in order to be able to boot from another disk in case of failure. # sysctl kern.geom.debugflags=0x10 # dd if=/boot/zfsloader of=/dev/da0a bs=512 oseek=1024 conv=notrunc # zpool import bunker
7. install system on ZFS filesystem Don't forget to set 'zfs_load="YES"' and vfs.root.mountfrom="zfs:bunker" in loader.conf as well as 'zfs_enable="YES"'in rc.conf.
8. copy zpool.cache to the ZFS filesystem cp -p /boot/zfs/zpool.cache /bunker/boot/zfs/zpool.cache
9. set mountpoint # zfs set mountpoint=/ bunker
10. Now, given that aliases for all disks in the zpool exists (check with the `devalias` command on the boot monitor prompt) and disk0 corresponds to da0 (likewise for additional disks), the system can be booted from the ZFS with: {1} ok boot disk0
PR: 165025 Submitted by: Gavin Mu
|
#
219089 |
|
27-Feb-2011 |
pjd |
Finally... Import the latest open-source ZFS version - (SPA) 28.
Few new things available from now on:
- Data deduplication. - Triple parity RAIDZ (RAIDZ3). - zfs diff. - zpool split. - Snapshot holds. - zpool import -F. Allows to rewind corrupted pool to earlier transaction group. - Possibility to import pool in read-only mode.
MFC after: 1 month
|
#
212804 |
|
17-Sep-2010 |
pjd |
Remove magic value.
|
#
208669 |
|
31-May-2010 |
avg |
zfs boot: fix error handling in zfs_readdir
Found by: clang static analyzer MFC after: 4 days
|
#
204067 |
|
18-Feb-2010 |
pjd |
Update comment. We also look for GPT partitions.
|
#
198420 |
|
23-Oct-2009 |
rnoland |
Correct some issues with zfs boot.
- Teach it to read gang blocks. (essentially untested) If you see "ZFS: gang block detected!", please let me know, so we can either remove the printf if it works, or fix it if it doesn't.
- If multiple partitions exist on a disk, probe them all. We also need to reset dsk->start to 0 to read the right sector here.
- With GPT, we can have 128 partitions.
- If the bootfs property has ever been set on a pool it seems that it never goes away. zpool won't allow you to add to the pool with the bootfs property set. However, if you clear the property back to default we end up getting 0 for the object number and read a bogus block pointer and fail to boot.
- Fix some error printfs. The printf in the loader is only capable of c,s and u formats.
- Teach printf how to display %llu
Reviewed by: dfr, jhb MFC after: 2 weeks
|
#
185938 |
|
11-Dec-2008 |
ps |
Fix a leak introduced in r185902. We should free the devspec if we've successfully found a zfs pool.
|
#
185902 |
|
11-Dec-2008 |
ps |
Avoid a double free in devopen by not freeing the device structure in zfs_dev_open. This stops a panic in the loader when trying to read from a zfs device and no zfs devices exist.
|
#
185096 |
|
19-Nov-2008 |
dfr |
Add a GPT-aware variant of zfsboot which should be used in a similar manner to gptboot, i.e. installed in a freebsd-boot partition using /sbin/gpart or /sbin/gpt.
Tweak the /boot/loader ZFS support so that it can find ZFS pools that are contained in GPT partitions.
|
#
185029 |
|
17-Nov-2008 |
pjd |
Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:
- Delegated Administration
Allows regular users to perform ZFS operations, like file system creation, snapshot creation, etc.
- L2ARC
Level 2 cache for ZFS - allows to use additional disks for cache. Huge performance improvements mostly for random read of mostly static content.
- slog
Allow to use additional disks for ZFS Intent Log to speed up operations like fsync(2).
- vfs.zfs.super_owner
Allows regular users to perform privileged operations on files stored on ZFS file systems owned by him. Very careful with this one.
- chflags(2)
Not all the flags are supported. This still needs work.
- ZFSBoot
Support to boot off of ZFS pool. Not finished, AFAIK.
Submitted by: dfr
- Snapshot properties
- New failure modes
Before if write requested failed, system paniced. Now one can select from one of three failure modes: - panic - panic on write error - wait - wait for disk to reappear - continue - serve read requests if possible, block write requests
- Refquota, refreservation properties
Just quota and reservation properties, but don't count space consumed by children file systems, clones and snapshots.
- Sparse volumes
ZVOLs that don't reserve space in the pool.
- External attributes
Compatible with extattr(2).
- NFSv4-ACLs
Not sure about the status, might not be complete yet.
Submitted by: trasz
- Creation-time properties
- Regression tests for zpool(8) command.
Obtained from: OpenSolaris
|