15:06:19 <kowenh> #startmeeting
15:06:20 <zodbot> Meeting started Tue Apr 20 15:06:19 2010 UTC.  The chair is kowenh. Information about MeetBot at http://wiki.debian.org/MeetBot.
15:06:22 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
15:06:51 <kowenh> thanks for 'meeting' with me
15:07:11 <josef> np
15:08:19 <kowenh> So, i guess you could start by telling us a little bit about yourself
15:08:55 <josef> sure thing
15:09:46 <josef> I've worked for Red Hat for almost 6 years now, originally I was an intern in our support organization, and eventually I ended up in the filesystem kernel group a few years ago
15:10:26 <josef> when Chris Mason announced BTRFS in 2007 (I think) I started poking around on it, mostly trying to do little things to make it more feature complete
15:10:47 <josef> before that most of my filesystem experience was with GFS/GFS2, our clustered filesystem
15:11:04 <josef> so moving to a non-clustered fs was quite a nice change :)
15:11:31 <josef> ever since then I've devoted probably 1/2-3/4 of my work time to BTRFS
15:11:56 <kowenh> OK, so BTRFS started in 2007. What is it exactly?
15:12:19 <josef> So its a new filesystem thats trying to bring in some more modern features to linux
15:12:54 <josef> for example it has snapshotting and subvolume support built into the filesystem, instead of having to rely on another layer, such as LVM, to give you those features
15:13:53 <josef> it has some unique data integrity features, such as checksumming for all data and metadata
15:14:24 <josef> and we use a method call copy-on-write to deal with general data integrity, instead of the traditional journaling filesystems like ext4 and xfs
15:15:01 <kowenh> That sounds really interesting, but unfortunately I'm only in my second semester of computer science and don't exactly understand all of those features.
15:15:26 <josef> hehe ok i'll explain them a little bit more
15:15:42 <kowenh> thanks
15:16:01 <josef> so snapshotting means that you can create an exact copy of the volume at a given point in time
15:16:18 <josef> this is usefull for backup programs that don't want to have to deal with a changing filesystem
15:16:30 <josef> you can take a snapshot of the filesystem, and then backup from the snapshot
15:17:02 <josef> for Fedora we've used this feature to give us extra safety when doing yum transactions
15:17:30 <josef> so right before doing a big yum update our plugin will take a snapshot of the filesystem, so now you have two copies of the filesystem
15:17:43 <josef> then yum does its update onto your original volume
15:18:00 <josef> then if something goes horribly wrong, you can "rollback" to the snapshot that was taken before you did the yum update
15:18:15 <kowenh> that makes sense
15:18:57 <josef> you do this by making the snapshot the default volume to be mounted, so next time you reboot your system will be just like it was before you ran a yum update
15:19:20 <josef> and then you can mount the broken volume somewhere else and try and fix things manually
15:19:59 <kowenh> got it
15:20:28 <josef> subvolumes are just a different way to organize your data
15:20:53 <josef> because BTRFS has built in RAID, the idea is that in the future you will be able to assign different RAID profiles to different subvolumes
15:21:09 <kowenh> what is RAID?
15:21:35 <josef> RAID is a way to organize data across several disks
15:21:42 <kowenh> ok
15:21:48 <josef> and there are different levels
15:21:59 <mchua> http://en.wikipedia.org/wiki/RAID (although, honestly, my eyes would glaze over while reading this if I didn't already know about it)
15:22:20 <josef> so RAID0 is called striping, that does basically what LVM does, takes 2 disks and makes them look like 1 big disk
15:22:52 <josef> and RAID1 which is called mirroring, it will take 2 disks and copy the data between the two of them and make it look like 1 disk
15:23:49 <josef> so for example if you have 2 disks, and you don't really care about your OS, but you really want your /home directory to be mirrored in case one disk fails, you can create a subvolume for / and use just the normal data profile, and then create a /home directory and set its data profile to be RAID1
15:24:01 <josef> then anything you write to /home will be copied between the two disks
15:24:25 <josef> so if one of your hard drives dies you can recover all of your /home data from the other drive
15:24:45 <kowenh> ok. i understand that.
15:24:49 <josef> sorry this is alot of information :)
15:25:03 <kowenh> that's ok. it's really interesting to me :)
15:26:08 <josef> good :)
15:26:18 <kowenh> are snapshots and RAID components/features of Btrfs?
15:27:01 <josef> yes, BTRFS has a bunch of volume management type features along with being a normal filesystem
15:27:32 <josef> i dont think i said this explicitly, but BTRFS can deal with having multiple disks within itself
15:27:36 <josef> instead of having to use MD or LVM
15:27:47 <josef> which is what lets us do things like RAID1 and such
15:28:32 <kowenh> what do MD and LVM stand for?
15:29:29 <josef> LVM stands for logical volume management, the default install of Fedora puts everything in a LVM volume group
15:30:02 <kowenh> so Btrfs is not the default for Fedora 13?
15:30:09 <josef> I'm not entirely sure what MD stands for, but its what gives linux Software RAID
15:30:20 <josef> oh no, its not ready for primetime yet :)
15:30:35 <josef> its still very much an experimental fs that is under heavy development
15:30:58 <josef> alot of the key features are there, but alot of stabilizing and such needs to be done still
15:31:16 <kowenh> haha. ok. so Fedora 13 users can opt to use it? (and probably work on it?)
15:31:43 <josef> yes if you give the installer the "btrfs" option on boot it will allow you to install onto a BTRFS fs
15:32:13 <josef> it's been an option since Fedora 11, the box I'm currently working on is Fedora 11 with a BTRFS root
15:32:27 <josef> course it is much faster and much more stable in Fedora 13 :)
15:32:37 <kowenh> ah. and if the installer does this, how do they use BTRFS? is it automatic?
15:33:04 <josef> you just select a custom disk layout instead of the default one
15:33:23 <josef> and then when you setup your volumes you tell it to format the volume as BTRFS instead of EXT4
15:33:44 <josef> you still need to have a seperate /boot partition that needs to be formatted as ext3 since Fedora 13's grub doesnt have BTRFS support yet
15:34:04 <kowenh> what exactly does that mean?
15:34:39 <josef> so the default layout for everybody already looks like this when you do an install
15:34:53 <josef> you get a /dev/sda1 and a /dev/sda2 (or whatever)
15:35:10 <josef> the first partition is around 250 megabytes, and gets formatted as ext3
15:35:14 <josef> and given the mountpoint of /boot
15:35:40 <josef> then usually /dev/sda2 is made into a volumegroup and there are different logical volumes added to that which are formatted as ext4
15:36:04 <josef> instead of doing that you want to have your first partition be formatted as ext3 and have the mountpoint of /boot just like normal
15:36:29 <josef> and then you can change your / logical volume to have a fs type of btrfs instead of ext4
15:36:39 <josef> if you use the normal layout option in anaconda
15:37:04 <josef> I usually create a /dev/sda1 for /boot, a /dev/sda2 for swap, and then a /dev/sda3 for / which is formatted as BTRFS
15:37:21 <kowenh> so, the RAID makes the 2 files and then the one is changed to BTRFS?
15:37:25 <kowenh> oh
15:38:04 <josef> well our default layout makes 2 partitions, one that is used for /boot, and one that is used for LVM
15:38:25 <josef> within that volumegroup you generally have 2 volumes, one for swap, and one for / that is formatted as ext4
15:38:49 <josef> if you want the easiest way of changing it you can tell it to just give you the default layout, and then choose to review the layout before creating it
15:39:10 <josef> then when it takes you to the review screen you can change the logical volume that is formatted as ext4 to be formatted as BTRFS
15:39:27 <kowenh> ok. and this is for the installer who chooses to have BTRFS?
15:39:29 <kowenh> ah. ok
15:39:47 <josef> right
15:40:34 <kowenh> are there any screenshots/tutorials for users? or is BTRFS generally meant for users who sort of know what they're doing?
15:41:32 <josef> I dont think there are any tutorials yet, since BTRFS is still experimental we want to try and make sure that only people who know the risks are able to use it
15:41:52 <josef> though I think at this point it may be a good thing to put together
15:43:08 <kowenh> ah. ok. (i think you might have said this) but definitely not ready for widespread release/use yet?
15:43:31 <josef> nope not yet :)
15:43:51 <josef> for one thing there is no working fsck, so if something goes wrong the only way to fix your filesystem is to reformat and restore from backups
15:44:10 <kowenh> got it.
15:44:35 <kowenh> are there time goals for the project?
15:44:47 <josef> that is a very populare question :)
15:45:19 <josef> my own personal goal is to have the special "btrfs" anaconda option taken away by Fedora 15, so that anybody can choose to use it
15:45:37 <josef> and then hopefully have everything stable enough to be the default in Fedora 16 or 17
15:46:04 <kowenh> ah. ok. (anaconda means test?)
15:46:04 <josef> so hopefully fall of next year it will be stable enough for it to be the default Fedora filesystem
15:46:30 <josef> oh no mean then "btrfs" option you have to give the installer to get the ability to use BTRFS during hte install
15:46:46 <josef> i want to take that away so that any user can just use BTRFS if they choose without having to give the installer a special option
15:47:07 <kowenh> ah ok. so now you have to get permission to use it?
15:47:50 <josef> you don't have to have permission, you just have to know how to turn it on :)
15:48:06 <josef> so when you first see the installer screen when booting up an install disk
15:48:06 <kowenh> ok. haha. got it (sorry for all the clarification questions)
15:48:16 <josef> just hit tab and you will have a boot prompt
15:48:30 <josef> type in linux btrfs and hit enter and you will have the option of formatting your volume with btrfs
15:49:02 <kowenh> ok. that makes sense
15:51:41 <kowenh> is there anything else you think is important for people to know about BTRFS? in general and as it relates to Fedora 13?
15:53:05 <josef> just to keep in mind that it is a new filesystem that is constantly changing, so if you are going to use it with data you care about you need to make sure to back up regularly
15:54:40 <kowenh> Excellent. good advice.
15:54:58 <josef> as for Fedora 13, if you install on btrfs and want to use the rollback feature you'll want to install the yum plugin for it
15:55:12 <josef> i'm trying to find the name of it, i think its yum-plugin-fssnapshot
15:55:38 <kowenh> where do you go for the yup plugin?
15:56:00 <josef> its in the Fedora 13 repos i think
15:56:03 <josef> i'm double checking
15:56:42 <josef> but you'll want to keep in mind that the plugin will create a snapshot _every_ time you do a yum action, so you will get alot of /yum-<date> snapshots building up in your / directory
15:56:50 <josef> so you should delete them every once and a while
15:57:24 <kowenh> yeah. don't want un-needed data building up :)
15:57:27 <josef> oh ok its yum-plugin-fs-snapshot
15:57:31 <josef> right :)
15:57:52 <josef> ok i just checked, that plugin is in the normal repos
15:58:03 <josef> so you can just do yum install yum-plugin-fs-snapshot
15:58:11 <kowenh> ok
15:58:12 <josef> and it will start working automagically :)
15:58:43 <kowenh> nice
16:01:56 <kowenh> So, unless you have any more words of wisdom, or think that there's something we didn't cover (that i wouldn't know to ask about), thank you so much for your time.
16:02:59 <josef> I'm good, thank you for doing all of this, this subject matter can be kind of dry :)
16:03:25 <kowenh> I find it interesting (or at least the parts i understand)
16:04:25 <josef> I'm glad, its hard to find comp sci people who like storage stuff :)
16:05:32 <kowenh> well, thanks again. I'm going to end the logging now.
16:05:53 <josef> sounds good, thanks for doing this :)
16:06:09 <kowenh> glad to help and thank you
16:06:16 <kowenh> #endmeeting