Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

cperciva writes "The first release from the new 7-STABLE branch of FreeBSD development, has been released. FreeBSD 7.0 brings with it many new features including support for ZFS, journaled filesystems, and SCTP, as well as dramatic improvements in performance and SMP scalability. In addition to being available from many FTP sites, ISO images can be downloaded via the BitTorrent tracker, or for users of earlier FreeBSD releases, FreeBSD Update can be used to perform a binary upgrade."

It's quite good. Where I work, we've been using the release candidates to store upwards of 15 TB of data, spread over about 50 hard drives. We haven't had any problems, and the performance has been fantastic.

Solaris still offers better support, but the ZFS support offered by FreeBSD is production quality.

Slated for 7.1 is support for booting GPT [wikipedia.org] partitioned disks. This will make the whole partitioning thing even easier, since it will make BSD labels and the MBR go away entirely, and partitioning will be done entirely using LBA addressing.

ZFS is indeed labeled experimental, and it's an important distinction. That said, I believe that Pawel Dawidek, who ported the file system from Solaris, is using it in production. The chief caveat at the moment is that ZFS should only be used on the amd64 architecture. Other issues are not specific to FreeBSD's implementation of ZFS, e.g., the large memory footprint, but are instead inherent to the current release of ZFS and would be the same under any OS. More about the project at http://wiki.freebsd.org/ZFS/ [freebsd.org].

"7-STABLE" is FreeBSD-speak for "this implements the FreeBSD 7 API/ABI, and any program you write or compile for an earlier release will work just fine on a later release". In other words, the Application Programming/Binary Interfaces won't change in incompatible ways.

This is in contrast to Linux, where updating to a new kernel (belonging to the same "stable" kernel branch, or even applying security patches) can make programs break until you recompile them.

We're using FreeBSD 7.2 RC2 ZFS in a production environment on Amd64. It's getting hammered, and holding up fine.

1) ZFS has *solved* our storage problems.2) ZFS needs 2GB of RAM3) You should run it on a dual core processor if you're going to use compression.4) Research glabel so you can move drives around from cable to cable and still use the same device name.*

I've never needed to know any of those things to install FreeBSD. We run a number of FreeBSD virtual machines and physical servers. I installed them all myself. The most complicated part was entering network information, since all of these systems had static IPs and weren't using DHCP. Unless you're doing something out of the ordinary, you can just use all the defaults and have a fully working system in 15-20 minutes on an average machine.

I've been using FreeBSD since version 2.2.7. I've been using Linux and other OSs even longer. Operating systems that have been around as long as these weren't just created from the start to be a breeze to install. Linux used to require a lot more manual configuration than it does now... just because something like Ubuntu makes it easy doesn't mean it always was. Linux has progressed in this area, and so has FreeBSD, and so have most other mature operating systems.

Also, FreeBSD is not targeted at the same audience as something like Ubuntu. A better comparison would be PC-BSD and Ubuntu, as they are targeted at desktop users. I guess maybe FreeBSD could be compared to the server or alternate editions of Ubuntu, in which case the install process (using text screens) is fairly similar.

Hmm. The time I tried to install FreeBSD, the installer choked on my hardware. I tried two different dell desktops. Part of the problem was an inability to deal with a USB keyboard. I hope that has been fixed, and I plan to try FreeBSD again, some day. I'll stick with a more common OS, for now.

FWIW, there's something about Dells and USB keyboards and the FreeBSD single user mode. I'm not sure exactly what the problem is (or I'd contribute my own fix), but a workaround is to go to the loader prompt on boot (option 6 I think) and enter 'set hint.atkbd.0.disabled="1"'m then 'boot'. This will bump the AT keyboard out of the way and allow the USB keyboard to function. You'll either need to set this in your/boot/device.hints after installation or remember to do it whenever you boot into single user mode.

Disk Geometry trolling isn't funny or have you confused this with partitioning. So, are you trolling or are you stating that you don't like to partition drives. If it is partitioning then you may want to check out the above links; if you're trolling, then continue with what you're doing

GREAT article - it is interesting for a non-programmer to read this type of technical detail, presented in an understandable way. For me, right at the edge of my theoretical-only knowledge. A detailed summary, I guess. (oxymoron)

When Linux says it's experimental, that generally means it won't work for most people.

Define "work".
As I posted up in the thread, pata_via incorrectly detects my 80 wire cables as 40 wires, but the whole switch over from/dev/hda to/dev/sda (and sdb, hpt366 still puts my 4 RAID chip devices as hda b c and d) went very smoothly and two kernels ago was labelled EXPERIMENTAL.

Turning off all EXPERIMENTAL kernel options leaves you with a system that really is only good for i386, not the i686 and better.

Funnily enough, the devices connected to the HighPoint chip are using the same cables, so it is just a detection routine, and dropping from ATA133 to ATA33 is a PITA, but not a killer when you're using that damned XP for playing games. Linux is still limited by the 2Mbps internet when torrenting so its not really a killer when you don't expect uber-speed from your desktop. I would trade speed for security any day of the week, but I know a fix is right around the corner (/me prays).

So you have not used ZFS yet? If so, you would know "why not just use Linux and lvm2?" It is just so easy and fast to add extra storage and provide data security across many different devices. For one thing, newfs is redundant.

I just use freebsd-update. That does mean that custom kernels are a pain, but OTOH I have never had any problems. Well, there was the one time that it took two reboots to get the release to update for whatever reason, but that was just an annoyance.

Softupdates don't solve the important unclean shutdown fsck problem very well. Background fsck is a nightmare for any production system with non-trivial amount of spinning rust.

How's that? I mean, I'd rather not have to fsck my terabyte RAIDs, but if I have to, at least the system can be running live and undegraded while the loose ends get cleaned up.

Wrong. Half the writes as compared to the naive gjournal journalling. Real modern journalling filesystems usually have the option to journal just metadata. What's more, journalling is far more flexible than softupdates. You can journal to a small battery backed RAM device for example.

If you're just journaling metadata, then you're not getting the full benefit of journaling (and definitely not anything more than softupdates offers, as it's basically an in-memory ordered journal of metadata transactions to be committed). As far as the battery-backed RAM: that's like saying cats are better than dogs because you can give them medicine if they get ringworm. BTW, with FreeBSD's GEOM system, you could journal to an encrypted RAID on a remote host if you wanted to. You might have already known that; others might not.

Wrong. There has to be some filesystem support work done.

Wrong. gjournal is a generic journaling provider. You can use it to wrap any other GEOM component. From it's own man page:

When gjournal is configured on top of gmirror or graid3 providers, it also keeps them in a consistent state, thus automatic synchronization on power failure or system crash may be disabled on those providers.

Pretty neat, huh? You can wrap it around your RAID to make it crashproof. If you think background fscks are bad, then you've probably never watched a few terabytes of mirror resync itself. Anyway, what you misunderstood is that filesystems have to be altered to interact meaningfully with the underlying journal. UFS has been so modified. That doesn't mean that other filesystems won't work on top of it (which would be silly because a gjournal looks just like any other block device), but that they're not optimized for it.

No, you read that right. The reason is mainly that FreeBSD users have been enjoying something called "softupdates" for the last decade or so, which is sort of like an in-memory journaling. Rather than writing metadata directly to disk, it's queued in memory, grouped into an efficient order, then transactionally committed to the underlying drive. The disk is never in an inconsistent state, even without a journal to fall back on. If the system crashes, a special fsck that can run while a filesystem is mounted read-write comes along and deallocates any space that's no longer used but hasn't yet been marked as empty.

Because of that, there hasn't been much need or real drive to get journaling into FreeBSD. The solution they're going with is actually nicely abstracted, in that you configure a journal for a whole device through GEOM (which is kind of like a Lego set for building drive setups). Although you'd probably never want this, you could theoretically have two "drives" that reside on remote machines (via ggate) bound together with RAID1 (via gmirror), encrypted (via geli), and with a local journal (via gjournal).

Seriously, jump! I switched from Debian (2.something, I think) to FreeBSD 4.5 *years* ago. I haven't been happier.

I'm still running FreeBSD 6.3 on my server, and I will upgrade to 7 soon, but I found PC-BSD to be the better desktop system (DesktopBSD had strange quirks, and wasn't as polished).

PC-BSD uses the "stable" FreeBSD as it's base, so although it's currently FreeBSD 6.3 based, that'll no doubt change to 7.0 soon. PC-BSD also uses KDE as it's desktop environment, so you'll have no trouble with your apps.

I don't know the results of the "pissing match", but I can attest to the re-written ULE scheduler (NOT the same ULE that was in 5.x and 6.x! This scheduler is referred to as ULE/SMP2.0) being both stable and greatly improved. The scheduler was tested *specifically* against MySQL, and the benchmarks exceed that of Linux. Here's the details you want:

AFAIK tmpfs passed all regression and filesystem tests, has good performance and is now included as experimental to make sure it gets wider attention. The only caveat I know about is that fsck pass# in fstab needs to be 0, or you'll experience hangs at boot. There have been some reports on the lists about tmpfs panicking in very specific scenarios, but none so far have been reproducible.

Judging your skill by your comments on this story, please roll out to production:-)

Now the system is built from source, ready to go into my temporary directory. Back up/etc and other config files:

$ mergemaster -p

Now my/etc is backed up ready to merge later. Install new kernel

$ make installkernel$ reboot

Now I start up in single user mode. Install new system just build from source.

$ mount -a$ cd/usr/src$ make installworld

The binaries are all installed. Merge new/etc files with old ones:

$ mergemaster

Now the machine is up to date.

As for installing packages, you have several choices. I prefer to build from source, but you can use packages. Packages are usually a little behind the ports tree. So for example, to install KDE the way I would do it:

$ cd/usr/ports/x11/kde3$ make install

And several hours later you have KDE 3, Xorg, and a host of other apps that aren't included with the base install that KDE3 needs.

Installing from CD is easy, but it's all text based so don't be shocked. I recommend installing the "X-Developer" package and the ports tree. That should include all the base system and developer tools.

You're probably spoiled by the package manager. Ports are neat, but apt is a dream. At the very least you'll have to get used to a different way of doing things. If you use a lot of custom repositories (e.g. rarewares [rarewares.org]) you might encounter a few headaches getting all the software you want. There are some things, like 'apt-cache search' that it's not immediately obvious how to do on ports. I think you're just supposed to string together 'find' and 'grep' commands, since ports is just a tree full of text files.

- I found the same sysinstall that I saw 4+years ago when I last tried installing Freebsd.

What's the problem, does sysinstall not work for you? I've never had a problem with it. If you fear the sight of plain text, then FreeBSD will not be for you. While FreeBSD makes a damned awesome desktop system, that is not its goal. It is not designed for Aunt Tillie.

- I found that the official way to configure is to generate the config file template using 'Xorg -configure' and then hand editing the xorg.conf config file!!!!

That is because that's how X.org comes. Talk to the X.org developers about a better configuration tool. It's not FreeBSD's job to fix their shortcomings. I agree with you that this is a pain, but from FreeBSD's perspective, X.org is just another third party software project.

- I found that the standard install still installs TWM and doesn't even ask for KDE/GNOME (I know you need to install the packages *after* the install, and yes I know I can use sysinstall) and you are dropped to a text login after install.

You DO have an option to install KDE/GNOME during installation, if you continue on to the post-install configuration page of sysinstall.

p.s. It's about this time in your complaint list when most people start telling you about PC-BSD...

- I found that my amd64 cpu with the nvidia integrated card doesn't have an nvidia driver. And the default nv driver can't make use out of DDC to configure my brand new widescreen LCD monitor.

Talk to NVidia. They're the ones who insist on a proprietary binary blob and top secret chip specs. I can't run FreeBSD on my laptop because of an ATI driver with no (workable) Open Source driver available(*). If we ever get together, we can have a beer and curse the bastard proprietary video card manufacturers.

- I found that my mouse pointer is invisible in X.

Got no clue. Never seen that one before. Even when I had an NVidia card (curse them!), I still had a mouse pointer. I bet there's some weird ass hardware mouse option in your xorg.conf file.

(*) Actually, I can use the VESA driver, and it's damned fast and snappy. But it without multi-head support, it is a major pain doing presentations on the laptop.