Unoffical empeg BBS

Quick Links: Empeg FAQ | RioCar.Org | Hijack | BigDisk Builder | jEmplode | emphatic
Repairs: Repairs

Page 2 of 5 < 1 2 3 4 5 >
Topic Options
#296687 - 12/04/2007 06:34 Re: Hardware RAID Advice [Re: mlord]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
I love GNU with linux

Of course, I'm quite familiar with it (and admit to having occasional minor quarrels!)
Probably a lot like people familiar with another OS.

Quote:
Quote:
How many attempts at a /dev filesystem have there been?

The original "static /dev" from 1991 is still supported and works fine. Over the past two years, various new features in the kernel have enabled proper hotplug support, and a userspace "udev" device manager app has grown up to use those features. But again, the original 1991 method still works just fine.
Quote:
How often did that break existing things?

Zero, or near to it, unless one deliberatly switched to a different method.
Installing an entire new system, eg. Ubuntu, of course will give the new methods as default. As it should.


As a matter of fact, because I installed my machines a *looong* time ago and just slowly upgraded, swapping out graphics, RAM, CPUs, motherboards, hard disks etc over time (no 'activation' here) I only moved to udev last week.
I think I wanted better device naming for my USB memory stick.
Everything else just worked the same
I just typed:
apt-get install udev
and there it was (no reboot FWIW, just a completely different way of accessing hardware online at once).
This is under Debian though - none of this flash Ubuntu nonsense

Quote:
Quote:
The list goes on and on.

It certainly does! Stellar backward compatibility, no major upheavals in established distros. The hot new ones like (K)Ubuntu of course install only the latest stuff by default, but the older stuff is there too.



I installed Redhat 4.1 (I think) on an AMD something machine a while back (1997). Then I upgraded to Redhat 7.2 when it came out. in 2002-ish Then, since it worked, I left it serving my emails. I upgraded the kernel along the way for various reasons - it became a firewall so I suspect I did the ipxxxx things. I'm sure a lot of the code was the same as I ran in '96 - it certainly was running the same 1992 1Gb SCSI disks I liberated from the skip at SGI when I retired it. It's still in the spare room for sentimental reasons.

Also, just before I retired it, since it had an ISA motherboard I dug out an old 10Mb hard disk that I used in college on an Amstrad 2086 in about 1992-ish. It was MFM and used RLE (I think). Compiled the kernel, plugged it in and read my data.

Couldn't run the turbo-pascal - though I daresay I could have loaded an emulator and installed something...

And, as for the gcc thing - last week was yet another first for me
My first empeg kernel compile on my 2.6.18.3 (old, I know) *Intel based* kernel.
I just downloaded the 2.95 arm cross compile toolchain built on god-knows what system back in the mists of time and ran it and got a new kernel.

I wonder if the same proprietary toolchain used in Cambridge back in the day would run under Vista?
I can't remember why the player code is now totally dead but isn't it because the toolchain won't run? (really, I don't know but I thought that was the reason).

Feel free to moan about suspend/hibernate though
Or 3D-acceleration on graphics cards.
or many many other things - what's life without tribes?
_________________________
LittleBlueThing Running twin 30's

Top
#296688 - 12/04/2007 06:53 Re: Hardware RAID Advice [Re: drakino]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Quote:
mdadm --force is a scary thing to use late at night trying to recover the array.


Yep - been there...

One of my motivations for the wiki was to try and gather best-practices to explain what you should do in this situation.

Oh, and 'this situation" is usually a catastrophic failure where you've lost multiple drives at once or in a cascade. Your array is dead, dead, dead. You have blown the redundancy you designed in (ie you lost 3+ drives in a RAID6 array).

You have however done data-recovery using ddrescue and friends and there is a chance that you can recover something - try *that* on a hardware raid

I think I'm right in saying that if you use --force it will recreate your superblocks and not touch your data.
If you get it wrong you re-run it with different parameters until it works.

**BUT**
If, for some reason the kernel thinks that your array needs 'synchronising' then it will start writing all over your data and 'goodnight Vienna'.
So it's a good idea to use --force with the 'missing' keyword to assemble the array in 'degraded' mode. That way you can try a read-only mount and see if there is anything resembling a filesystem there...

This kind of stuff is what I want to put up on the wiki after running it by the list.

The linux-raid list (http://vger.kernel.org/majordomo-info.html) is a very friendly and helpful place BTW - far less busy than lkml and much more newbie-friendly - do pop in if you have any raid or recovery questions...


PS My favourite HW raid issues: when your raid card goes titsup - how much are they? Do they even make those Adaptec raid cards you bought 4 years ago? Are the new ones compatible? What happens if you can't get a disk that's *exactly* the same anymore?
_________________________
LittleBlueThing Running twin 30's

Top
#296689 - 12/04/2007 07:05 Re: Hardware RAID Advice [Re: LittleBlueThing]
Cris
pooh-bah

Registered: 06/02/2002
Posts: 1904
Loc: Leeds, UK
Quote:
PS My favourite HW raid issues: when your raid card goes titsup - how much are they? Do they even make those Adaptec raid cards you bought 4 years ago? Are the new ones compatible? What happens if you can't get a disk that's *exactly* the same anymore?


So it looks like my decision is quite a simple one....

Option 1 - Linux Software RAID 5: Need to learn how to use Linux at a level that allows me to recover if the worst happens, and also learn how to use Linux to actually get the thing going in the first place

Option 2 - Hardware RAID 5: Easier to set up and maintain, but if I get a card failure I could loose everything, but the data is still on the drives. A possible solution to this problem could be to buy 2 identical cards from eBay if I can find them cheap enough, so in that event all I do is swap to my back up card and away I go?

I would like to try Hardware RAID and FreeNAS as I still get to boot from USB Stick then. I think I will hunt down an old card and until I find one read your Wiki (looks great BTW!) and give software a go.

Lots of good advice and pointers here, thanks all for your help, keep 'em coming...

Cheers

Cris.

Top
#296690 - 12/04/2007 08:06 Re: Hardware RAID Advice [Re: Cris]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Maybe look at : http://www.openfiler.com/

It's a CentOS (based on the source RedHat releases) solution but it may be too techy - not sure

If you are going for a linux based solution then I'm honestly not sure that hardware based raid is easier to setup though - anyhow, yell (or PM) if you need anything.
_________________________
LittleBlueThing Running twin 30's

Top
#296691 - 12/04/2007 08:08 Re: Hardware RAID Advice [Re: LittleBlueThing]
andy
carpal tunnel

Registered: 10/06/1999
Posts: 5914
Loc: Wivenhoe, Essex, UK
Quote:
I wonder if the same proprietary toolchain used in Cambridge back in the day would run under Vista?
I can't remember why the player code is now totally dead but isn't it because the toolchain won't run? (really, I don't know but I thought that was the reason).


I could be wrong, but as far as I know there was no such proprietary toolchain. The empeg player code is C/C++ code that runs on Linux, I have always assumed that it was also built on Linux using the standard toolchain.
_________________________
Remind me to change my signature to something more interesting someday

Top
#296692 - 12/04/2007 08:52 Re: Hardware RAID Advice [Re: andy]
Roger
carpal tunnel

Registered: 18/01/2000
Posts: 5682
Loc: London, UK
Quote:
I could be wrong, but as far as I know there was no such proprietary toolchain. The empeg player code is C/C++ code that runs on Linux, I have always assumed that it was also built on Linux using the standard toolchain.


It's a gcc 2.95 (I think) crosscompiler, running on linux-i386, targetting ARM.
The Windows components were compiled with Visual C++ 6, which does still run on Vista, so ner.
_________________________
-- roger

Top
#296693 - 12/04/2007 11:05 Re: Hardware RAID Advice [Re: Roger]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Quote:
compiled with Visual C++ 6, which does still run on Vista, so ner.

to you too

(at last, a proper debate!)
_________________________
LittleBlueThing Running twin 30's

Top
#296694 - 12/04/2007 13:45 Re: Hardware RAID Advice [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
Quote:
I will give your suggestion a try and see how I get on.



Ack. I'm pulling down the current daily build of "Fiesty Server" to try on one of the racks here later today or tomorrow. If I remember, I'll report back on how it looks for RAID stuff.

Cheers

I'm building the Ubuntu Feisty system right now using yesterday's image of the "alternate" installer CD. So far, so good. I found this set of instructions that I'm using as a loose guide for this:

http://www.debian-administration.org/articles/512

There are a few things I'm trying differently, and we'll see how those work out.

My oh my, it certainly does take some time to construct a 3TB RAID5 array from scratch..

Top
#296695 - 12/04/2007 14:34 Re: Hardware RAID Advice [Re: mlord]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Quote:

My oh my, it certainly does take some time to construct a 3TB RAID5 array from scratch..

Seriously?
Or do you mean the whole system rather than just the array?

IIRC my 1Tb arrays took seconds to create and more seconds to build a filesystem (using XFS though).

It does take a while for the background sync to finish - but you can use the array as normal in the meantime.
_________________________
LittleBlueThing Running twin 30's

Top
#296696 - 12/04/2007 15:21 Re: Hardware RAID Advice [Re: LittleBlueThing]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
Quote:

My oh my, it certainly does take some time to construct a 3TB RAID5 array from scratch..

Seriously?
Or do you mean the whole system rather than just the array?



Just the array -- it does it in the background, of course, but the initial sync involves rewriting the entire contents of the entire space of the entire array. That takes a while with 3TB of disk space.

But I'm redoing it again now -- my experiment didn't pan out, and smaller physical RAID partitions will make testing failure modes a lot less time consuming later on.

So this time, the RAID5 will be only 120GB instead of 3TB.
Quote:

It does take a while for the background sync to finish - but you can use the array as normal in the meantime.

Exactly!

Top
#296697 - 12/04/2007 15:27 Re: Hardware RAID Advice [Re: mlord]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4173
Loc: Cambridge, England
Quote:
Just the array -- it does it in the background, of course, but the initial sync involves rewriting the entire contents of the entire space of the entire array. That takes a while with 3TB of disk space.

Why, though? Can't it just treat the sector contents as undefined until written to? Why isn't setup of an empty array instantaneous?

Peter

Top
#296698 - 12/04/2007 15:49 Re: Hardware RAID Advice [Re: mlord]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Quote:

But I'm redoing it again now -- my experiment didn't pan out, and smaller physical RAID partitions will make testing failure modes a lot less time consuming later on.

So this time, the RAID5 will be only 120GB instead of 3TB.


don't forget bitmaps.

Resyncing a dirty Tb array takes seconds
_________________________
LittleBlueThing Running twin 30's

Top
#296699 - 12/04/2007 15:54 Re: Hardware RAID Advice [Re: peter]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Quote:

Why, though? Can't it just treat the sector contents as undefined until written to? Why isn't setup of an empty array instantaneous?


(following is edited from a message from Neil Brown - this comes up in the list a fair bit).

There is an --assume-clean option which is safe for raid1 and raid6 but for raid5 it is NOT safe to skip the initial sync. It is possible for all updates to be "read-modify-write" updates which assume the parity is correct. If it is wrong, it stays wrong. Then when you lose a drive, the parity blocks are wrong so the data you recover using them is wrong.
_________________________
LittleBlueThing Running twin 30's

Top
#296700 - 12/04/2007 16:17 Re: Hardware RAID Advice [Re: LittleBlueThing]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
There's certainly a reasonable way to implement this, which would involve some sort of bitmap of written-to and not-written-to blocks, but, as I recall, Linux RAID doesn't keep any metadata on disk, so there's not any way to record this metadata. (Correct me if I'm wrong about that.) Not that all (or even any, necessarily) on-disk metadata RAID systems implement this. Recurring storage and the need to journal that data probably outweighs the cost of a one-time setup.
_________________________
Bitt Faulk

Top
#296701 - 12/04/2007 16:45 Re: Hardware RAID Advice [Re: wfaulk]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
There is now a bitmap mechanism recording dirty blocks: http://linux-raid.osdl.org/index.php/Bitmap
(Now I know how Tony feels )

Could you develop it to allow -assume-clean? Probably. Is it worth it? As you say, probably not


Edited by LittleBlueThing (12/04/2007 16:46)
_________________________
LittleBlueThing Running twin 30's

Top
#296702 - 12/04/2007 19:48 Re: Hardware RAID Advice [Re: LittleBlueThing]
drakino
carpal tunnel

Registered: 08/06/1999
Posts: 7868
Quote:
There is an --assume-clean option which is safe for raid1 and raid6 but for raid5 it is NOT safe to skip the initial sync.


Why would this be safe for raid 6, but not raid 5? Both use distributed parity for the redundancy. Raid 6 simply has a different algorithm in use across the drives to ensure any 2 disks can fail, by using 2 disks worth of space for the parity.

Top
#296703 - 12/04/2007 20:16 Re: Hardware RAID Advice [Re: drakino]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
My guess would be that the implementation of Linux's RAID6 is such that it requires a complete recalculation of the parity blocks with each write. Sounds like a massive write-performance hit (due to the requirement of needing to read that block on each disk) to me. But since RAID6 can be implemented in any way (the specification requires only that it be able to survive two simultaneous disk failures) and I don't feel like crawling through source code, I could easily be guessing wrongly.


Edited by wfaulk (12/04/2007 20:18)
_________________________
Bitt Faulk

Top
#296704 - 12/04/2007 20:48 Re: Hardware RAID Advice [Re: wfaulk]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
From the author again:
Quote:
For raid6 it is also safe to not sync first, though with the same caveat as raid1. Raid6 always updates parity by reading all blocks in the stripe that aren't known and calculating P and Q. So the first write to a stripe will make P and Q correct for that stripe. This is current behaviour. I don't think I can guarantee it will never changed.


I suppose 'that aren't known' matters. Will you often be writing data that you've just read (so blocks are in cache) or writing enough that you know all the blocks anyway.

Also see: http://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf
_________________________
LittleBlueThing Running twin 30's

Top
#296705 - 13/04/2007 06:26 Re: Hardware RAID Advice [Re: peter]
Roger
carpal tunnel

Registered: 18/01/2000
Posts: 5682
Loc: London, UK
Quote:
Why, though? Can't it just treat the sector contents as undefined until written to? Why isn't setup of an empty array instantaneous?


Yeah, I wondered that when it took a couple of hours for my 3ware card to build a new 1.3Tb (4x500GB) RAID5 array...
_________________________
-- roger

Top
#296706 - 13/04/2007 07:03 Re: Hardware RAID Advice [Re: Roger]
LittleBlueThing
addict

Registered: 11/01/2002
Posts: 612
Loc: Reading, UK
Just because I'm interested.... could you use the array whilst this was going on?
_________________________
LittleBlueThing Running twin 30's

Top
#296707 - 13/04/2007 07:57 Re: Hardware RAID Advice [Re: LittleBlueThing]
Roger
carpal tunnel

Registered: 18/01/2000
Posts: 5682
Loc: London, UK
Quote:
Just because I'm interested.... could you use the array whilst this was going on?


No. The 3ware BIOS configuration screen wouldn't let me exit until it was finished. This is an 8500-series card. Maybe the newer/higher end ones will...
_________________________
-- roger

Top
#296708 - 13/04/2007 08:47 Re: Hardware RAID Advice [Re: mlord]
Cris
pooh-bah

Registered: 06/02/2002
Posts: 1904
Loc: Leeds, UK
Quote:
But I'm redoing it again now -- my experiment didn't pan out


Well that makes me feel a whole lot better

If you have problems it must be nearly impossible for me to do it!

Amazingly I got a knock on my door about an hour ago, it was the postman. I bid on one of the LSI cards the otherday and it's turned up already! £35 (US$65 ?) no bad!

Within the hour I have FreeNAS running, RAID5 working and the box sat on my network taking files. Certainly pain free to this point. I haven't however figured out how to tell the array is healthy to start with, and of course haven't tested it yet for drive failure/recovery.

On thing I have noticed is speed, so far this seems to be much slower than the software solution, but maybe this is because the array is still building in the background, the drive are certainly running, or maybe the card won't let them power down?

I still want to try the software approach due to some of the arguments put forward in the thread, I just need a slightly less painful experience.

Cheers

Cris.

Top
#296709 - 13/04/2007 09:54 Re: Hardware RAID Advice [Re: Cris]
Cris
pooh-bah

Registered: 06/02/2002
Posts: 1904
Loc: Leeds, UK
Quote:
and of course haven't tested it yet for drive failure/recovery


Seems to handle it, remove a drive, alarm sounded, checked BIOS, added drive back in, auto reuilding now. I can still access all the stuff on the drive while this is happening.

I don't think this card supports any form of power saving, this may in itself rule this out as an option, how erver well it seems to be working at the moment.

Cheers

Cris.

Top
#296710 - 13/04/2007 12:04 Re: Hardware RAID Advice [Re: Cris]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
Quote:
But I'm redoing it again now -- my experiment didn't pan out


Well that makes me feel a whole lot better


Heh.. I just didn't follow the directions given -- tried something different (yet similar..) and it failed to boot after the install. Got distracted with another project afterwards, so I'll try it again today sometime.

Cheers

Top
#296711 - 13/04/2007 14:02 Re: Hardware RAID Advice [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
Quote:
Quote:
But I'm redoing it again now -- my experiment didn't pan out


Well that makes me feel a whole lot better


Heh.. I just didn't follow the directions given -- tried something different (yet similar..) and it failed to boot after the install. Got distracted with another project afterwards, so I'll try it again today sometime.



It works just fine (install/booting, that is). I "got lucky" with the cdimage I pulled down on Wednesday -- it had a broken initramfs-tools package that screwed the reboot stuff. That got fixed yesterday, and the new packages now "just work" as they should.

This is all still pre-release, for another week.
I'll try pulling/reinserting drives next.

Cheers

Top
#296712 - 13/04/2007 14:39 Re: Hardware RAID Advice [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
I'll try pulling/reinserting drives next.


Manual intervention is required here. The raid tools, specifically mdadm, are crap. But they do work, so one just has to write the magic into a recipe script and then never worry about it again.

I pulled one of the four SATA drives, which had partitions that were members of the RAID1 (root filesystem) and RAID5 (/usr/local filesystem) arrays. There was a pause, while the low level libata tried to recover the failed drive, and then the system just continued working afterward.

But reinserting the drive is a current known hassle. It gets seen as an entirely different device than the one that was removed. So manual intervention is required to delete the old unit from the RAIDs, and then add the new one.

The drive I pulled was /dev/sdb, and then became /dev/sde on reinsertion.
So I had to do this to get it back into the arrays without a reboot:

mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1 -a /dev/sde1
mdadm /dev/md1 -f /dev/sdb2 -r /dev/sdb2 -a /dev/sde2

That could easily be scripted.

But there was another wrinkle: after the drive is pulled, /dev/sdb no longer exists.
Well, sort of. It''s "half there", but udevd nuked the /dev/ entries for it.
This prevents actually issuing the above commands.

So the full sequence on a udev system is this:
---------------------------------
(1) removal:
## yank the drive, wait about 30 seconds for the fault-recovery to give up, then:

mdadm /dev/md0 -f /dev/.static/dev/sdb1 -r /dev/.static/dev/sdb1
mdadm /dev/md1 -f /dev/.static/dev/sdb2 -r /dev/.static/dev/sdb2

## reinsert the drive, wait about 30 seconds again, then:

mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2

---------------------------------
Note that with this method, the new drive gets the same name as it previously had.
But with USB discs coming and going, there's no guarantees, unfortunately.

Also, if the inserted drive is a new one, then it will need to first be partititioned correctly before doing those last two commands. The simple way, given identical drives, is to do this just before those last two commands:

dd if=/dev/sda of=/dev/sdb bs=512 count=1
hdparm -z /dev/sdb

Definitely in need of a higher level tool to simplify this.
Mind you, a simple bash script (20-50 lines?) could totally automate it all.

Cheers

Top
#296713 - 14/04/2007 05:05 Re: Hardware RAID Advice [Re: mlord]
Cris
pooh-bah

Registered: 06/02/2002
Posts: 1904
Loc: Leeds, UK
Wow! Thanks Mark!

Well my hardware RAID recovery didn't go quite how I wanted. I didn't loose my data in the event of loosing a drive, which I did with my previous software RAID attempts. But, I couldn't get the thing to rebuild.

I can really see the disadvantage of not having any tools to monitor the array. I think that the drive would begin to recover, but when I re-booted it started over. I couldn't see a way of checking, even from the command line in freenas, what stage the rebuild was at. The only place tht told me that was the RAID's BIOS.

So I am still torn between both solutions. I like both for different reasons. I do have enough spare HD's to run 4 x 250Gb and 3 x 120Gb arrays so maybe I'll run both side by side and directly compare how I cope with recovery etc....

I could of course just drop back to a simple mirror and forget RAID5, but I really want that extra 250Gb.

Cheers

Cris.

Top
#296714 - 14/04/2007 09:44 Re: Hardware RAID Advice [Re: Cris]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:

I could of course just drop back to a simple mirror and forget RAID5, but I really want that extra 250Gb.



One other thing I noticed, is that the RAID5 had substantially greater throughput on large sequential reads (like copying big files around -- .flac or .mpeg2 for instance.

On RAID1 (Linux soft) the throughput was the same as for a single drive on reads. For RAID5 it was more like a RAID0 -- 3 drives in parallel. 71Mbytes/sec vs. 210Mbytes/sec.

Cheers

Top
#296715 - 14/04/2007 09:52 Re: Hardware RAID Advice [Re: Cris]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:

I could of course just drop back to a simple mirror and forget RAID5, but I really want that extra 250Gb.


Yeah, I know the feeling.

A *lot* of people seem to prefer RAID 1+0 with a four drive setup.
That's two pairs of RAID1, which are then combined into a single virtual drive
with RAID0 striping across the two pairs. Or the other way around (0+1)

Very reliable, very fast -- more so than just two pairs of RAID1 would be.
But still no extra 250GB.

Cheers

Top
#296716 - 14/04/2007 09:57 Re: Hardware RAID Advice [Re: Cris]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14483
Loc: Canada
Quote:
Wow! Thanks Mark!

Well, on a related note: the Feisty bug database is presently littered with RAID roadkill. Lots of people seem to have seen similar installer issues to what I ran into, and my fix for it (intervene in the boot process to get it up, and then just update the packages to repair it all) doesn't work for most of them.

So there are/were still other issues. I think most problems were with PATA (IDE) drives rather than pure SATA configurations -- the kernel currently has two sets of device drivers (backward compatibility overlap again, Bitt) for PATA, and Ubuntu apparently has some kinks to work out in their driver selection logic.

I'll pull another image down later today, and see if things are improving or not -- and if not, then perhaps fix it for them.

Cheers

Top
Page 2 of 5 < 1 2 3 4 5 >