Re: Linux 2.4 - 2.6 migration

2003-11-07 Thread Quinn Harris
Did you enable IDE TCQ in your 2.6 kernel?  To quote http://www.namesys.com/
download.html
Don't enable TCQ (Tagged Command Queuing) in 2.5 (and modified 2.4) kernels. 
TCQ is known broken currently and it will corrupt your filesystems for sure.

Quinn


On Friday 07 November 2003 06:39 am, Sebastian Kaps wrote:
 Hi!
 
 Is there something concerning ReiserFS I should know when migrating from
 Linux 2.4 to Linux 2.6?
 
 I'm asking because a few days ago I downloaded and compiled 2.6.0-test9
 just for curiosity. It booted fine and I went back to my standard
 kernel, which was 2.4.23-pre5 at that time. Right after booting the
 2.4.x kernel, I got lots of the following messages in my logs:
 ,

 | kernel: ide2(33,3):vs-4080: reiserfs_free_block: free_block
 | (2103:463529)[dev:blocknr]: bit already cleared

 `
 The block number always differed. Gladly, reiserfsck --rebuild-tree
 helped to cure that, but there were lots of unusable files after that
 (e.g. parts of files overwritten with parts of other files).
 
 Is this suppose to happen? What caused this error?
 
 Another thing: I had to hard reboot my system a few times in the last
 few months. I also experienced that sometimes parts of files were
 overwritten with 0x00s or parts of other files. Can someone explain to
 me how this can happen?
 
 -- 
 Ciao, Sebastian
 


Relocating files for faster boot/start-up on reiser(fs/4)

2006-09-13 Thread Quinn Harris
 patterns and better allocation of the data.

I hope to rerun these tests with Reiser4 (maybe 4.1) on the same hardware.  I 
expect with a fresh (not fragmented) Reiser4 partition, the improvements will 
be more pronounced.  But a repacker should allow more reproducible results 
and nearly perfect data placement for boot and app start-up.

I hope with reiser4, relocation, and the new upstart (Ubuntu's sysvinit 
replacement) with good scripts, I will get this system to boot to usable in 
30 seconds.  And slowoffice (aka openoffice)  to load in 6s cold.  Am I 
overoptimistic?

What about a mechanism to explicitly set or hint at item keys?  Maybe someday, 
linux packages could include preferred file order information that a file 
system like reiser4 could use to order the files on disk resulting in fast 
load times without the need for the user to profile the app.

I think there is a lot to be said for measuring access patterns and using that 
to set keys in addition to deducing it from semantics using a fibration 
plug-in.

Thoughts?

--
Quinn Harris


Re: Relocating files for faster boot/start-up on reiser(fs/4)

2006-09-13 Thread Quinn Harris
Peter,

I think you misunderstood what and why I was doing this.  Let me try to 
clarify.

My test is far from perfect.  Its mearly an exercise to verify the basic idea.

 Just by copying you are allowing reiser to optimize the dir.
Exactly, but I am copying in a way that implicitly suggests what order those 
files will be accessed in.

I was attempting to reorder the data on disk to minimize disk 
seeks with knowledge of the order that data will be accessed.  This was done 
by taking advantage of the way reiser assigns keys to files based on their 
name and its affinity to match key order with block order.  

 You're trying to duplicate what a tree-based design does automatically.
This works because of the tree-based design of reiser.

The reiser must assign each file (item actually) some key, why not take 
advantage of knowledge of the order those items will be accessed in?  The 
current key assignment algorithm is a best guess at that given the limited 
information it has (file/directory name).  Remember key assignment roughly 
translates to on disk position.

The relocate script can leave the file system in the exact same state from a 
semantic standpoint (what files and directories are there) but relocate the 
data on disk.  Copying those files to single directory with numeric names was 
a kludge to implicitly tell the file system to place those files in a 
specific order and near each other on disk.  The rename step is to switch the 
old unoptimized file position with the new more optimized position.

 Moreover, remember that reiser packs
 files into clusters so that you may read more than just your one file from
 time to time which could end up adding time to your test.
The boot optimization was over 3885 files.  Ideally those files would be 
ordered head to tail in a sequence that perfectly matches the order they will 
be read.  As a result multiple items in a node will all need to be read at 
nearly the same time.  That didn't happen in my test, but it was much closer 
to that after I ran the relocate script than before.  Hence the performance 
improvement.  With this script, reiser4 and a repacker I have reason to 
believe the ordering will be nearly perfect.  Of course, that is excluding 
random access patterns inside the same file and the directory data needed to 
get at the files.

This basic technique can be made into a boot script much like the readahead 
script already in Ubuntu, just improved.  Boot once with a profile option, it 
measures read patterns (already does this), then reorders data on disk with 
this trick, or maybe something better.  Then the next time you boot its 
1.5-2x faster.  Better yet, including this profile information in the distro 
packages.  When a package is installed this info is used to help assign item 
keys resulting in a better disk layout and faster boot times and no weird 
file copy rename mumbo jumbo.

I bring this up here because I expect with reiser4, a repacker, and this 
trick, reiser4 could deliver at least 50% better reproducible real world boot 
and app load performance than any other file system.  At least until other 
file system implement something similar, like what MS did with XP.  Can 
something similar be done (or has been) on ext(2/3/4), XFS, JFS or other 
linux file systems?

Windows XP boots much faster than Windows 2000 in part because it does what I 
am talking about.  File access is recorded at boot, then the disk is defraged 
with this knowledge.  Check out
http://msdn.microsoft.com/msdnmag/issues/01/12/xpkernel/default.aspx
under Prefetch.

Also look at http://kerneltrap.org/node/2157

MS's implementation required implementing a defrag utility with a specific 
feature that could position disk data based on access logs.  Reiser4 can do 
the same thing as part of its basic functionality with the addition of a much 
much simpler tool to help assign keys based on that access log.  Then a 
repacker (when it devaporizes) can further optimize for that access pattern 
without any code specific to that purpose.  Seems like good orthogonal design 
to me.

Hope that clarifies.  Like my previous post, whatever it did, it did it in way 
to many words.



On Wednesday 13 September 2006 15:10, Peter wrote:
 On Wed, 13 Sep 2006 14:51:39 -0600, Quinn Harris wrote:
  Thoughts?

 Yes. Why on earth would you do this? By copying the files and renaming and
 hardlinking them is nothing a sysadmin would ever do. Just by copying you
 are allowing reiser to optimize the dir. You're trying to duplicate what a
 tree-based design does automatically. Moreover, remember that reiser packs
 files into clusters so that you may read more than just your one file from
 time to time which could end up adding time to your test.

 If reiser needs speedup it certainly won't be done by renaming files!

 JM$0.02

-- 
Quinn Harris



Re: Relocating files for faster boot/start-up on reiser(fs/4)

2006-09-15 Thread Quinn Harris
On Thursday 14 September 2006 23:15, Toby Thain wrote:
 On 14-Sep-06, at 6:23 PM, David Masover wrote:
  Quinn Harris wrote:
  On Thursday 14 September 2006 13:55, David Masover wrote:
  ...
 
  That is a good point.  Recording the disk layout before and after
  to compare relative fragmentation would be a good idea.  As well
  as randomizing the sequence as a sanity check.
  Also note that during boot I was using readahead on all 3885
  files.  So the kernel has a good opportunity to rearrange the
  reads.  And the read sequence doesn't necessary match the order
  its needed (though I tried to get that).
 
  Speaking of which, did you parallize the boot process at all?

 Just off the top of my head, wouldn't that make the access sequence
 asynchronous  thereby less predictable? (Although I'm sure it's a
 net win.)
It could, but the kernel will try to reorder the outstanding block requests to 
reduce seek.  If that is an overall win I don't know.  In addition early in 
the boot, readahead-list or similar will tell the kernel to start reading 
most of the files need for the complete boot so they are already in memory 
when needed.  Ubuntu does the readahead now and all my tests where with 
readahead.


  I'd estimate my system easily spent more than 50% of its boot time
  not touching the disk at all before I did that.  Gentoo can do
  this, I'm not sure what else, as it kind of needs your init system
  to understand dependencies.

 ...

My first test turned out to be on a heavily fragmented file system.  I 
reinstalled Ubuntu Dapper with a fresh reiserfs file system and it booted in 
1:07 (grub to desktop background appearing).  After extending the time 
readahead-watch monitors files and running the reallocate script it now boots 
in 0:50.

I wrote a little python script that uses the FIBMAP ioctl to check the blocks 
the files are using.  From this I know the relocate script on this fresh file 
system is doing exactly what it was intended to do.  I am also able to 
estimate how much it will improve performance by comparing the fragmentation 
before and after its run.  I have learned that the delays on disk io for 
Ubuntu boot are dominated by rotational latency and not head seeks.  The 
current readahead implementation orders the files by on disk location, 
substantially mitigating head seek time.  But the latency is can easily 
double the time needed to load the same data.

Subjectively (and objectively by about 6s) relocation and extending 
readahead-watch substantially improved Gnome boot and initial responsiveness.  
But, I need to measure how much of this was caused by just extending how much 
is read ahead vs. the reallocation.

The current Ubuntu boot waits for hardware probing, DHCP and other things 
giving the disk readahead a chance to work.  I think this reallocation might 
help a parallel boot more as the data will be needed sooner.  So I changed my 
mind, I think parallel boot will highlight the reallocate advantage.  Now I 
just need to test the hypothesis.

Not sure if I would be better of trying initng or waiting for upstart (Ubuntus 
new init) to get scripts that actually parallel boot.  The code for upstart 
is very clean and it has the backing of a major distro, so I have high hopes.

Much like before, I was able to improve a 16.5s oowriter cold start to 14s 
with this reallocate script, with a cold start of 4.8s (OO 2.0.2, was using 
2.0.3 before).  It is evident to me that the readahead-watch is missing 
something on Open Office startup.  It seems very possible to get OO to cold 
start in under 8s with the uses of reallocation and readahead right when it 
starts.


My current scripts are at
http://www.quinnh.org/reallocate.py  (27 line reallocate script, expects 
dir /tmp/refrag to exist and takes the readahead-watch log as a paramater)

http://www.quinnh.org/measure.py (uses FIBMAP to estimate the time needed to 
load the files in the passed readahead-watch log, uses average seek and and 
latency for estimate)

http://www.quinnh.org/readahead-watch-time-order.patch (Patch against Ubuntu 
readahead-watch to add an order by access time option.)


I will try to write a nice unified script that will profile, reallocate and do 
readahead for an application to speed it up.  e.g. # reallocate.py 
oowriter.  Run it once to profile and reallocate.  drop_caches, Run it again 
and oowriter loads faster.

I think Python will be the best language for this because its become 
relatively universal and its easy to understand for the uninitiated.  This 
really isn't black magic so transparency is good.  I personally prefer Ruby 
though.


Re: v3 rebuild-tree left system in unusable state because of space shortage

2006-09-15 Thread Quinn Harris
Are you still able to mount the fs read write?  If so, you might see if you 
can find files to delete, or possibly the 4G file was hardlinked to somewhere 
else.  This should list all files on the partition with the largest last.

find -type f -exec du {} \; | sort -n

Then wait a long time.
Does that turn up anything interesting?

KDE has a nice file size view graphic tool as a kpart for konqueror.

On Friday 15 September 2006 11:06, Grzegorz Jaśkiewicz wrote:
 On 9/15/06, Vladimir V. Saveliev [EMAIL PROTECTED] wrote:
  Could it be that the file was opened when you deleted it?

 nope, I know that issue. I rebooted the system twice before trying any
 other way.


Re: v3 rebuild-tree left system in unusable state because of space shortage

2006-09-15 Thread Quinn Harris
Scratch that last command use
find -type f -printf %k\t%p\n | sort -n | tail -n 100
its much faster.

On Friday 15 September 2006 11:06, Grzegorz Jaśkiewicz wrote:
 On 9/15/06, Vladimir V. Saveliev [EMAIL PROTECTED] wrote:
  Could it be that the file was opened when you deleted it?

 nope, I know that issue. I rebooted the system twice before trying any
 other way.


Re: reiser4: data recovery after mkfs.reiser4?

2006-12-20 Thread Quinn Harris
I really doubt there is any solution that would take less than a few hours.  I 
am sure it is possible to recover much of the data but to the best of my 
knowledge no tool exists that can recover from an abandoned root node (for 
reiser4).  Though I believe recovery in this case would just involve finding 
the root node (think that is reasonably tractable, but slow) fixing the 
superblock to point to that and let fsck do its thing.  

I don't think the root node has a magic number that advertises root, but 
internal nodes do have a recognizable signature and in principal one could 
deduce which is the root from a collection of the internal nodes.

Note that reiser4 packs lots of data in single nodes.  If you create a fresh 
fs with only a few small files they will reside entirely in the root node, 
which will be clobbered by a mkfs.  There is a very good change that mkfs 
will clobber a little bit of data, but less than 4K.

I am sure a few thousand dollars would buy you a solution.  Maybe less.

On Tuesday 19 December 2006 1:20 pm, Christian Trefzer wrote:
 Hi folks,

 a buggy script I wrote dared to mkfs a reiser4 partition after failing
 to properly tar up its contents - not that my life would depend on them,
 but it would save me a few hours if I could get the stuff back.

 Other than mkfs.reiser4, mount and unmount, nothing was done to the
 device ; ) Is there any way to recover most of what was stored on the
 now nuked fs?

 TIA,
 Chris


Re: Hans selling Namesys

2006-12-26 Thread Quinn Harris
All of the Reiser4 code as it exists today will always be available under GPL 
no matter who buys the copyright.  The only reason I can see to buy Namesys 
is either to offer or use a re-licensed copy of the code or to take advantage 
of the knowledge of the current Namesys employees.  There might be some value 
in existing contracts with DARPA or whoever but I am not sure.

The re-license thing could be very difficult if there are many people who 
decide on if it will be re-licensed.  This is why Hans has always retained 
exclusive copyright to all the code.  I would question if re-licensing would 
be feasible with any structure that could be called community ownership.

In the short term I believe the current employees of Namesys (how many are 
there now?) are the most valuable asset.  It takes time to become acclimated 
to such a complex piece of code.  Having to rehire a new set of people would 
easily set the work back by a few months to a year.

On the other hand, I also believe that exclusive rights to the code could be 
very valuable to companies like Apple or even everybodies favorite, 
Microsoft.

Even with knowledge of the mechanisms Reiser4 uses, I expect it could cost 
another company over a million dollars more to completely re-implement a 
similar file system compared to having uninhibited use of the existing code.

I could see a company like Apple using a file system like Reiser4 to improve 
the performance of the existing file system and more importantly to enable 
acceptable performance for a namespace the unifies the file system and XML 
(chosen because of its widespread use) allowing for the elimination of 
the save file paradigm.  Basically, applications could store data in an in 
memory XML DOM (as I expect Open Office does today) which would be seamlessly 
written to disk after each transaction on that DOM.  (Reiser4 can do this 
much better than any other FS because of efficient storage of small items and 
the reiser syscall if ever finished).  Such a system could claim, Never 
loose data, Ever.  (This is what databases have been doing for decades.)  
Actually you could probably loose a few seconds of data as I expect flushing 
to disk after each character typed wouldn't be acceptable.  Though even this 
problem could be eliminated with an small NVRAM, Flash and HD hybrid.  

Wrap the NVRAM and flash in hard casing, mix in a good real time internet 
backup scheme (plugins and efficient extensible metadata would help here), 
and it would become possible to insure against data loss at a reasonable 
cost.  Something like, with this laptop and OS, if you loose any data, even 
if you drop it off a 20 story building 1 second after typing that last word, 
we will cut you a check for $100,000.  Some limitations apply.  I think many 
would pay an extra few hundred dollars for something like that.

Of course, getting to that place would require alot of further work but 
Reiser4 would be a good start.

I would rather see this under GPL in Linux but this verbage was to elaborate 
on one reason that the existing code would be worth a substantial chunk of 
change.  This could also be a reason why it would be in the interest of 
existing Linux companies to ensure development continues.

Bottom line, Han's best hope at making any significant amount on this sale 
would rest in a company seeing the value in Reiser4 wishing to re-license the 
code.


On Monday 25 December 2006 4:22 pm, [EMAIL PROTECTED] wrote:
 I'm an offer to buy some or little part of the legal properties of
 Namesys, still compromised with open source community.

 How much it costs at all?

 I work with reiser4 in my own enterprise private distribution and want
 this project lasting for a long time.

 André Zaiats.
 Codix - São Paulo - Brazil

  Hello,
  from reading all this stuff it seems to look like a competitors
  intrigue. But we don't have any evidences upon this neither do
  we have a sentence, yet...
 
  Can we build up a ReiserFS-community based fund to buy or save
  Namesys over time to help continue the current development? Just
  an idea.
 
   From my point of view the there are three general alternatives:
  * let/help someone really interested to buy Namesys
  * increase Hans' financial input directly to help himReiserFS
  * ReiserFS34 get bought by someone and become commercial or
 will vanish at once
 
  As I followed ReiserFS since 1997(?+-) but really don't know
  enough about the current case I'm not sure with my priorities in
  the list above.
 
  Best wishes to all contributors,
  my best wishes for your Xmas!
 
  Manuel
 
  Joe Feise wrote on '06-12-25 20:55:
  http://www.wired.com/news/technology/0,72342-0.html