Bug 689517

Summary: support for the various special things that btrfs does in the installer
Product: [Fedora] Fedora Reporter: Josef Bacik <jbacik>
Component: anacondaAssignee: David Lehman <dlehman>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: anaconda-maint-list, awilliam, bugzilla, diegocg, dlehman, eric-bugs2, gholms, jonathan, kagesenshi.87, lkocman, pmrpla, vanmeeuwen+fedora, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-12 18:48:08 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 689509    

Description Josef Bacik 2011-03-21 13:36:14 EDT
We need to support the following things in anaconda

-subvolmes - allow users to specify their subvolumes during install
-raid - allow users to setup raid
-compression - select between the various compression options btrfs offers
Comment 1 Chris Lumens 2011-03-21 13:43:39 EDT
*** Bug 618133 has been marked as a duplicate of this bug. ***
Comment 2 Izhar Firdaus 2011-11-17 11:20:19 EST

my wishlist :)

1. Allow users to create subvolumes (obviously)
2. / partition be inside a subvolume, which later be used as the default subvolume using 'btrfs subvolume set-default <id> <btrfs mount path>'
3. the real root of the btrfs filesystem is mounted in /dev/btrfs/ or similar using 'mount -o subvolid=0 /dev/btrfs/'

I believe this would provide an experience similar to how LVM is being used right now.

The current anaconda in F16 (livecd) looks like it want to destroy the whole / tree including subvolumes when doing a new clean installation. I havent tried the anaconda in DVD yet, not sure if theres a difference.
Comment 3 David Lehman 2011-11-17 12:01:46 EST
 Full support for btrfs is targeted for F17. Support for interactively creating/editing btrfs volumes is somewhat tentative given that entire installer UI is being rewritten this cycle, but kickstart support will be there at a minimum. Support will include subvolumes, raid and possibly compression.

 We are also working on an automatic partitioning scheme that uses btrfs. The current approach is to create a btrfs volume with subvolumes for root and home using available space on any available disks, much like what we do now for lvm autopart. We will also need a separate partition for swap and, depending on bootloader support, possibly a separate /boot.
Comment 4 Josef Bacik 2011-11-17 12:19:21 EST
Grub2 supports btrfs so we should be good on the bootloader.  I was actually going to start on adding the kickstart commands to do the subvolume and raid stuff soon, in fact I had cloned the anaconda tree and was setting up a vm to test but got sucked into btrfs bug squashing.  Are you planning on starting this work soon?
Comment 5 David Lehman 2011-11-17 12:44:17 EST
I know that grub2 can handle btrfs to some extent, but I still have concerns:

 1. is btrfs supported on platforms that don't use grub2 yet? (ppc, efi, s390)
 2. can grub2 handle /boot being on a subvolume?
    2.1. if not, what if it's on the default subvolume?
    2.2. if still no, should we use subvol 0 as /boot or use separate /boot?

As for kickstart, I've gotten some code written but am not satisfied with the syntax yet. I'm currently trying to finish writing the installer's btrfs backend code. Once that is functional for automatic partitioning I'll move on to kickstart.
Comment 6 Josef Bacik 2011-11-17 13:09:24 EST
Ah so efi probably not since that still uses grub1, and I'm not worried about secondary arches since btrfs doesn't work with those right yet anyway.  As for #2 that's an excellent question, I'll have to figure that out.
Comment 7 Eric Hopper 2011-11-24 02:59:30 EST
*** Bug 756666 has been marked as a duplicate of this bug. ***
Comment 8 Eric Hopper 2011-11-24 03:03:04 EST
I want the option to create a snapshot on upgrade and make the snapshot the root filesystem for the upgrade.
Comment 9 Diego Calleja 2012-01-23 18:02:04 EST
As a Btrfs user, I had to do some dirty tricks in the F16 install to force Anaconda to install inside of a subvolume. I would like to be able to install F17 without these tricks, but in case someone is trying to install F16 (or F17 doesn't improves the situation), this is how I did it:

1) Create a btrfs filesystem manually with another distro (because the btrfs userspace available in the F16 installer emergency shell was too old and wasn't able to list the available subvolumes, which is needed in the next step) with the disks and configuration you want.
2) Create a subvolume (or a snapshot, if the filesystem already existed) and set it as the default subvolume to be mounted if the user doesn't specifies any.
3) Install disk, enter Anaconda, go to the partition configuration screen. Choose one of the Btrfs partitions as the root filesystem and set the option to format it (because F16 anaconda won't allow to install on top of a non-freshly formatted filesystem)
4) Finish the partition configuration and continue to the screen which shows all the partition changes and filesystem formats planned, and asks for confirmation. Don't confirm it.
5) Go to the emergency shell, and link /sbin/mkfs.btrfs to /bin/true. That will avoid a filesystem format that would have deleted your pool and replication configuration. Go back to Anaconda and complete the install, which will be done inside the subvolume you configured as default.
Comment 10 Eric Hopper 2012-04-22 04:47:30 EDT
It looks like the partial support Anaconda has for btrfs has caused Anaconda to actually handle btrfs less well for Fedora 17.
Comment 11 David Lehman 2012-10-04 19:06:49 EDT
Fedora 18 Beta will support subvolumes and raid. So far we are planning to leave out compression support.
Comment 12 Chris Murphy 2013-01-06 16:25:35 EST
FWIW, GRUB2 does support /boot on Btrfs in a subvol, with all data/mdata profiles, and zlib or lzo compression.

+1 on comment 8, although that's for fedup.
Comment 13 Fedora End Of Life 2013-04-03 16:24:45 EDT
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
Comment 14 Adam Williamson 2013-05-12 18:48:08 EDT
The plans from comment #11 were implemented in 18 and 19. Closing.
Comment 15 Chris Murphy 2013-05-12 19:26:38 EDT
Fedora 18 implements btrfs raid10, Fedora 19 does not and as such is a regression. Unclear why compression as an option isn't going to be supported for newly created volumes.