Rate this page del.icio.us  Digg slashdot StumbleUpon

Interview: Fedora developers Seth Vidal and Will Woods

by Jonathan Roberts

This is the second in our series co-publishing with Fedora Interviews.

In Fedora, the supported method for upgrading from one release to the next is by downloading the media and rebooting from the media and using Anaconda. Why was this the case, and what’s wrong with a yum upgrade?

Seth Vidal: Anaconda has the advantage of running outside of the system it is upgrading. This means it can do certain tricks in the event of big changes. The lvm->lvm2 migration, for example. Yum can’t do this. Changing the partition or fs type on a running partition is a bad idea :)

Will Woods: Another good example: In Fedora 9 we have (experimental) ext4 support, and Anaconda is capable of migrating your ext3 filesystems to ext4 automatically. But yum upgrades can’t handle this.

Even if it was possible–would you really want your F8 kernel (with old, broken, or non-existent ext4 drivers) messing around with your filesystems? No, you should probably be running the new F9 kernel to do that.

Seth Vidal:
However, in a huge number of the cases, a yum upgrade worked fine for updating your distro. I’ve been updating my laptop for quite some time that way; lots of people have.

Will Woods: Live upgrades are kind of crazy. It’s a frequently-requested feature, especially from people coming from Ubuntu or Debian: “Why doesn’t Fedora have ‘apt-get dist-upgrade’! It’s so simple and easy!”

Well, it’s actually not that simple or easy. Have you actually read the 20 pages of directions for preparing for an upgrade? Or the 11-page-long list of potential problems with performing such an upgrade?

Yum upgrades use your (now old and out-of-date) yum, rpm libraries, kernel, etc. to perform the upgrade. And they do it on a running system! All sorts of weird things can happen when you upgrade the entire system while it’s running.

And now you’re developing pre-upgrade, which should land in Fedora 9. How does this work, and how does it resolve some of the problems faced in the traditional Anaconda update or yum upgrade?

Will Woods: A traditional Anaconda upgrade involves downloading and burning media. This is time-consuming and a bit wasteful–the media contains upgrades for packages you probably don’t have installed, but lacks upgrades for packages from the Everything repo or from third-party repos. So you’ll still need to download upgrades after the upgrade finishes!

If you upgrade over the network, you download a lot less data, but you have to sit and wait while anaconda fetches all those packages.

The PreUpgrade feature has two parts:

1) A GUI for F8 that downloads the F9 installer and *only* the packages your system needs to upgrade.

Seth Vidal: The boring part of an anaconda upgrade is when it resolves out what you need based on what’s installed and when it then downloads all the packages you need to do the upgrade. It’s boring, it is potentially error-prone when using flaky network connections, too.

So preupgrade uses the same depsolving logic from anaconda/yum, downloads all the metadata and packages you need while your normal system is running. So while you play tuxcart or other work the boring part of the anaconda upgrade is happening in another window.

Will Woods: This saves you time and bandwidth – and you don’t have to burn CDs/DVDs either.

2) Anaconda support for upgrading from a bunch of packages that are already on the target system.

Once everything is downloaded, you hit the “reboot” button and your system magically reboots into the Fedora 9 installer. It finds everything you’ve downloaded and installs using that.

How does this method compare with similar use cases in other distributions?

Seth Vidal: Fedora has live upgrades using yum upgrade Fedora has interactive installs using anaconda Fedora has scripted installs using kickstart Now Fedora has a way to preload your cache before doing an install – using preupgrade.

Will Woods: So you can upgrade with the convenience and bandwidth savings of a live upgrade, but without the risky craziness inherent therein.

By the time people read this, the feature will have landed in Rawhide. Is it possible for users to test the software by doing an update from Fedora 8 to Rawhide, and if so how?

Will Woods: Indeed it is! It’s pretty easy, too.

By now, the “preupgrade” package should be available in updates-testing for Fedora 8. Enable the updates-testing repo and install it. It currently shows up as “Upgrade Fedora” in your Applications -> System menu.

From there, it’s very simple – follow the screens to choose what to upgrade to, wait for everything to download, hit “Reboot”, and the upgrade will begin!

Once testing starts, is there a lot of work to be done on the technology before it’s ready for Fedora 9, or are you quite happy with its current status? Are there more features you’d like to see get added, either in the Fedora 9 time frame or beyond?

Seth Vidal: There are always more features. :)

Will Woods: There’s a couple of bugfixes and some UI improvements on the roadmap for 1.0 (which we plan to release in time for Fedora 9).

In the future we plan to better integrate preupgrade with the Fedora mirror system – the list of available releases will be on the mirrors, and when we do a new release you should be able to get a nice popup that says something like “Fedora 10 has been released [click here to upgrade]“.

Someday it should also let you pick your favorite mirror and get upgrades from 3rd party repos as well.

And, of course, we plan to do full i18n support so everyone worldwide can enjoy easier (and saner) upgrades.

And finally, would you like to tell us a little bit about yourselves? What got you interested in free software originally? What you like to do with your spare time when not working at the computer?!

Seth Vidal: I garden and ride my bike around.

Will Woods: I wrote my first program in BASIC, on our Atari 400, at age 3:

10 PRINT “DO YOU WANT TO GO SWIMMING DAD?”
20 GOTO 10

In high school, wanting a free C compiler, I ended up buying a copy of Slackware Linux Unleashed. I’ve been hooked ever since.

When I manage to get away from the computer, my wife and I make comics, play video games, and bother our cat.

23 responses to “Interview: Fedora developers Seth Vidal and Will Woods”

  1. Joe Buck says:

    Will Woods writes:

    “Yum upgrades use your (now old and out-of-date) yum, rpm libraries, kernel, etc. to perform the upgrade. And they do it on a running system! All sorts of weird things can happen when you upgrade the entire system while it’s running.”

    Yes, it’s hard, which is why the Debian people test distribution upgrades extensively. Often the transition has to be prepared for, by providing a pre-upgrade of apt/dpkg (or yum/rpm) under the old system if needed to handle new features in the new packages. (I prefer Fedora over Debian for other reasons, but Debian’s upgrade process is still the gold standard that others should aspire to).

    As for a major transition like changing from lvm to lvm2, one way to handle that is to arrange to do it on first boot, since the user has to boot to the new kernel anyway, instead of having Anaconda do it.

    As Seth and Will say, lots of people already are using yum upgrade, in part because the alternative is highly wasteful (download lots of packages you don’t use, and packages that you do use that are already out of date, waste media, etc).
    Ideally it could be better tested and supported.

  2. Marland V. Pittman says:

    I didn’t see it in updates-testing, but I’m excited about in-place upgrades finally happening. Good work!

    # yum –enablerepo=updates-testing install preupgrade

  3. Dulles says:

    RHEL 5 IS A BROKEN MESS

    More feel-good hype from Redhat. I’ve filed several bug reports on how yum and the “Redhat
    Network” is broken. It appears they were not read by engineering.

    A few months ago, I cancelled my Redhat subscription and switched to Kubuntu. So far, I’m
    impressed. The Adept Manager actually works with zero dependency errors (try that Redhat).

    With Kubuntu, I’ve saved many hours of “install hell” I’m used to as a Linux user. Thanks to
    Linus Torvalds, Linux was never designed to easily install apps. OK, enough feel-good Linux.

  4. David A. Wheeler says:

    Dulles: This article is not about RHEL 5, it’s about Fedora. Different products.

    I’m excited about the PreUpgrade stuff. That will make major upgrades MUCH easier to perform.

  5. sk, aka mr-sk says:

    #innercircle for life! demoncow rules!

  6. Will Woods says:

    One small thing that’s changed since the interview – preupgrade doesn’t show up in the menus once installed. You have to run “preupgrade” from the CLI.

    (Someday soonish we plan to have a puplet/packagekit popup to notify you when there’s a new Fedora release, and you’ll be able to start preupgrade from that. But not yet.)

  7. Mike McGrath says:

    Wait wait wait. Dulles didn’t like RHN so instead of switching to CentOS that guy went to kubuntu? Buhahahahahah

  8. szh says:

    > RHEL 5 IS A BROKEN MESS from Dullies

    Dullies just proved, that he is a troll on LWN

  9. Sarah says:

    I would use Windows in preference to a RedHat product, that company is as bas as IBM.

  10. Brett says:

    I love seeing uninformed opinions like Dulles and Sarah. It makes it so much more satisfying when they’re proven wrong.

    I’ve used every major distro out there, and several minor ones. There are many features of each one that I like, and quite a bit that I don’t.

    With Fedora and RHEL, I’ve seen something more important than just a good release or a couple of nice features.

    What I see is a community that is working for a high quality product. Each release makes significant improvements over the last. All of their contributions make a huge impact, even in Ubuntu. Even all the way in Redmond, the things that are happening in their environment indirectly because of Redhat.

    I think preupgrade is a step in the right direction. In a few releases, I can see that it will be filling the “live upgrade” feature in a very capable way.

  11. mesrik says:

    >I think preupgrade is a step in the right direction. In a few releases, I can see that it will be filling the “live upgrade” feature in a very capable way.

    Propably it will do for some time, but best solution AFAIK would be built on with LVM with copy on write capabilty, ZFS type pooling feature or NetApp style WAFL solution where each used filesystem and change to it can be thouht of a snapshot and a transaction to it.

    With that feature you simply make a new snapshot(s) of the filesystem(s), apply the upgrades to newly made snapshoot and reboot. You can even return back to old system and remove the old system if you are not happy with the new system, and then remove uneeded snaphots later etc.

    If the apps and users data is not with the same partitions which are used in upgrade, you may just let users be logged while upgrade and apps running, then boot and possibly run some dump/reload etc. migration before letting apps restart and users in again.

    That’s the way we should be working toward, with all systems including Linux and Fedora in question this article.

    Cheers,
    :-) riku

  12. Rahul Sundaram says:

    “Probably it will do for some time, but best solution AFAIK would be built on with LVM with copy on write capabilty”

    Not with LVM. It won’t be efficient enough to do a lot of snapshots like you want. Other solutions are either not accessible (different licenses, proprietary, patent issues etc) or alpha level (btrfs) currently.

  13. Preupgrading Fedora 9 - Blog of Leonid Mamchenkov says:

    [...] in All, Sysadmin, Technology on April 22nd, 2008 · No Comments Fedora 9 is coming Real Soon Now ©.  I mentioned before that I am desperately waitingfor this release, since it brings KDE 4 and Firefox 3.  One thing that I haven’t seen noticed anywhere until I read this interview is “preupgrade”.  It sounds pretty cool: By now, the “preupgrade” package should be available in updates-testing for Fedora 8. Enable the updates-testing repo and install it. It currently shows up as “Upgrade Fedora” in your Applications -> System menu. From there, it’s very simple – follow the screens to choose what to upgrade to, wait for everything to download, hit “Reboot”, and the upgrade will begin! [...]

  14. Lloyd says:

    Is there any chance you will offer this in Fedora7 for the upgrade to 9. I only see it in Fedora8 testing.

  15. Xi says:

    There is also NILFS for Linux which can do lots of snapshots efficiently. Itś developed by Nippon Telephone & Telegraph Co. and is in a much more mature state than btrfs. But architecturally they are very different and really I prefer the way btrfs does things..

  16. mesrik says:

    Hi Rahul,

    >Not with LVM. It won’t be efficient enough to do a lot of snapshots like you want. Other solutions are either not accessible (different licenses, proprietary, patent issues etc) or alpha level (btrfs) currently.

    Thanks for your input, very valid points, really but let me hilight that I pointed just the direction we should be working on (IMHO) and thats the snapshots with copy on write capability. All other solutions seem to be overly complicated long term and don’t even provide very much needed easy cutback possibility.

    I do know well current licensing problems, patent issues and the technical limitations of LVM etc., but without vision ‘there must be better way managing filesystem’ Jeff Bonwick et al. would not have not invented ZFS, right?

    I’m already quite old unix/linux/bsd *art and just like to remind you that we’ve seen quite astonshing development since what the filesystem state were with AT&T System 7. I don’t think we would be with all these features if we had given up and not even tried.

    Butter fs (btrfs) and NILFS both seem good start. ZFS got head start, but I bet that competition can make even ZFS better and if Sun doesn’t see the light (pun intended) by double licensing or whatever needed to get ZFS widely abopted with Linux there something else will replace it with competent features.

    I was just encouraging and pointing out which direction we will have to in long term go.

    Not that we have all the needed tech available quite yet, unfortunately, but it will happen sooner or later. Also it will likely happen sooner if we all understand the benefits and are able to push together, right.

    Knowing that giants like Oracle and NEC have taken on the challenge this is much more likely to happen compared to the early times when Linux was young and simple, so simple that I could even get it and patch features or fix broken issues to kernel fairly easily :)

    Now it’s so complicated that I don’t have time to delve in, but certainly will still be able to have a clear vision which direction the solution will be found.

    Cheers, and keep up good work with Fedora
    :-) riku

  17. eMBee says:

    from that 11-page-long list of potential problems upgrading debian not a single one has anything to do with upgrading through apt while the system is running. the all point out problems that may arise from changes in the configuration or applications after the upgrade.

    greetings, eMBee

  18. eMBee says:

    from that 11-page-long list of potential problems upgrading debian not a single one has anything to do with upgrading through apt while the system is running. the all point out problems that may arise from changes in the configuration or applications after the upgrade.

    greetings, eMBee

  19. Marland V. Pittman says:

    Gave it another go on a fresh install of F8… checked the testing repo, ran preupgrade from the command line, and I’m off to work… (the place where I work, not working on my computer).

    Here’s to moving in the right direction!

    MVP

  20. Alan Lake says:

    There is a version of preupgrade available for F7. See
    http://koji.fedoraproject.org/koji/packageinfo?packageID=6045

    I had not upgraded from F7 to F8 because I was waiting for this, which I had heard about. I downloaded the F7 version and found that the only upgrade option it gave me was an upgrade to F8. I figured that this would be OK, for F8 would give me the ability to upgrade to F9. It downloaded files OK, but hung up during the phase where it was looking for dependencies. That’s the bad news. The good news is that I was able to reboot into F7 with no hitches. I’m going to try to do this again but with more space in the /boot partition…

  21. Why not upgrade to Fedora 9? « The GNOME Commentary says:

    [...] May 13, 2008 at 5:30 pm (Fedora, Linux) Tags: fedora, preupgrade, release, upgrade You might be sitting there on your Fedora 7 or 8 setup, reading the Fedora 9 release notes drooling all over yourself wishing it was on your machine. Well why not upgrade to it without the ISO download using PreUpgrade? [...]

  22. Jon says:

    What about my server in a datacenter across the country? This is the reason I have to use yum to upgrade, I don’t want to pay some tech support guy $100 to upgrade for me. I am surprised that with the adoption of Fedora as a server OS that they don’t even consider this issue. I’m glad yum updates work because I’d still be on FC4 on most of my machines, but it would be so fabulous to have a yum upgrade supported.

  23. Panayiotis Tzanavaris says:

    Your computer will probably be dead or obsolete in 5 years maximum. You can put the latest OS on the new machine you get then. Life is short. Stick to what you’ve got since it works. Go get some fresh air and see the world. Think about this.