<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.16.2">
</HEAD>
<BODY>
I used the yum update to simulate a developer install of substantial size - nothing special about it.  I wanted to see if you wrote a lot to it what would happen.  I gather we are running into different mount points filling up?  (Remember I am a developer not a linux guy.)  There is room on the stick just not in tmp it filled up?<BR>
<BR>
I have a feeling that I will need to spin my own .iso from the Developer Live CD that includes RHDS and pretty much everything they need.  Then let them save a few documents in home to keep the large amount of writing to a minimum.  Am I heading in the right direction?<BR>
<BR>
MikeD<BR>
<BR>
On Fri, 2008-01-04 at 22:46 -0600, Douglas McClendon wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Mike Dickson wrote:</FONT>
<FONT COLOR="#000000">> I am out of the chess game.   Any news?</FONT>

<FONT COLOR="#000000">I'm not sure I follow your analogy?</FONT>

<FONT COLOR="#000000">Do you understand how the persistence is achieved?  I.e. a devicemapper</FONT>
<FONT COLOR="#000000">shapshot, where any changed blocks on the root filesystem get written to</FONT>
<FONT COLOR="#000000">the persistence file.  If the same block gets changed more than once,</FONT>
<FONT COLOR="#000000">that block gets updated in the persistence file, and thus no more space</FONT>
<FONT COLOR="#000000">is taken.</FONT>

<FONT COLOR="#000000">As a result of this, if you do something like a yum update, that creates</FONT>
<FONT COLOR="#000000">and deletes a bunch of files on the rootfs (in addition to the ones it </FONT>
<FONT COLOR="#000000">finally installs and leaves as is), all those changed blocks eat up </FONT>
<FONT COLOR="#000000">space in the persistence file, and don't get freed or even reused, </FONT>
<FONT COLOR="#000000">unless and until the filesystem decides to write to the exact same block.</FONT>

<FONT COLOR="#000000">With this lack of ideal efficiency, the question then becomes- is this </FONT>
<FONT COLOR="#000000">sufficient for your goals?  I can imagine many usage scenarios in which </FONT>
<FONT COLOR="#000000">this is sufficient, and as mentioned in other mails, many ways in which </FONT>
<FONT COLOR="#000000">to try and mitigate the ineficiency.</FONT>

<FONT COLOR="#000000">One thing I'll try when I find the time, is something like doing a</FONT>

<FONT COLOR="#000000">mkdir /dev/shm/tmpspace</FONT>
<FONT COLOR="#000000">mkdir /dev/shm/tmpspace/vtmp</FONT>
<FONT COLOR="#000000">mkdir /dev/shm/tmpspace/tmp</FONT>
<FONT COLOR="#000000">mkdir /dev/shm/tmpspace/fedora</FONT>
<FONT COLOR="#000000">mkdir /dev/shm/tmpspace/updates</FONT>
<FONT COLOR="#000000">mount --bind /dev/shm/tmpspace/tmp /tmp</FONT>
<FONT COLOR="#000000">mount --bind /dev/shm/tmpspace/vtmp /var/tmp</FONT>
<FONT COLOR="#000000">mount --bind /dev/shm/tmpspace/fedora /var/cache/yum/fedora/packages</FONT>
<FONT COLOR="#000000">mount --bind /dev/shm/tmpspace/updates /var/cache/yum/updates/packages</FONT>

<FONT COLOR="#000000">before I do a yum install of some small package, and then seeing what </FONT>
<FONT COLOR="#000000">the difference is in blocks used on the persistence file.</FONT>

<FONT COLOR="#000000">Anyway, beyond that, I do intend to re-add optional unionfs support to </FONT>
<FONT COLOR="#000000">my VirOS livecd creation toolset, despite the fact that it breaks my </FONT>
<FONT COLOR="#000000">rebootless installation mechanism.  Hopefully that will be done soon, </FONT>
<FONT COLOR="#000000">but probably not for months as I have several other higher priorities at </FONT>
<FONT COLOR="#000000">the moment.</FONT>

<FONT COLOR="#000000">But to be clear, because of all the above, trying to do a yum update </FONT>
<FONT COLOR="#000000">even with a 1G persistence file and the above method, is probably not </FONT>
<FONT COLOR="#000000">really feasible (except maybe the first day or two after a new release).</FONT>
<FONT COLOR="#000000">Yum updating a single package to get some specific critical bugfix, now </FONT>
<FONT COLOR="#000000">that might be doable.</FONT>

<FONT COLOR="#000000">The main usage scenario I foresee for the feature, is adding users to </FONT>
<FONT COLOR="#000000">the system, a seperate /home in fstab (mounted from a different fsimage </FONT>
<FONT COLOR="#000000">file on the same usbstick), and editing configuration files </FONT>
<FONT COLOR="#000000">(/etc/dovecot.conf, /etc/sysconfig/* /etc/rc.d/rc.local, etc....)</FONT>
<FONT COLOR="#000000">And installing a small number of other packages.</FONT>

<FONT COLOR="#000000">That certainly isn't as nice as if you could do a yum update, and end up </FONT>
<FONT COLOR="#000000">only using the same amount of space on the liveusb as if you respun the </FONT>
<FONT COLOR="#000000">livecd with the same updates.  But if you figure out a way to do that, I </FONT>
<FONT COLOR="#000000">will give you mad props :)</FONT>

<FONT COLOR="#000000">-dmc</FONT>



<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> MikeD</FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> On Fri, 2008-01-04 at 02:33 +0000, Mike Dickson wrote:</FONT>
<FONT COLOR="#000000">>> I just finished trying to download JBoss Developer Studio and </FONT>
<FONT COLOR="#000000">>> installing it on the thumb drive.  It filled up again.  I then dropped </FONT>
<FONT COLOR="#000000">>> the .jar on the stick hoping that I could install from that and it </FONT>
<FONT COLOR="#000000">>> filled up again.  Checkmate. </FONT>
<FONT COLOR="#000000">>></FONT>
<FONT COLOR="#000000">>> MikeD</FONT>
<FONT COLOR="#000000">>></FONT>
<FONT COLOR="#000000">>> On Thu, 2008-01-03 at 15:30 -0800, Mike Dickson wrote:</FONT>
<FONT COLOR="#000000">>>> Ran that and yes the snapshot area filled up BEFORE the errors.  Let </FONT>
<FONT COLOR="#000000">>>> me know what I can do....</FONT>
<FONT COLOR="#000000">>>></FONT>
<FONT COLOR="#000000">>>> MikeD</FONT>
<FONT COLOR="#000000">>>></FONT>
<FONT COLOR="#000000">>>> On Thu, 2008-01-03 at 16:31 -0600, Douglas McClendon wrote:</FONT>
<FONT COLOR="#000000">>>>> Mike Dickson wrote:</FONT>
<FONT COLOR="#000000">>>>> > Guys,</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > I got a LiveCD + Persistence usb drive running from your scripts, but </FONT>
<FONT COLOR="#000000">>>>> > got I/O errors if I tried to do a yum update.</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > Before that I was able to vi test.txt and put some text in and it </FONT>
<FONT COLOR="#000000">>>>> > survived a reboot.</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > What can I do to address the i/o errors?</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> My first question/explanation would be that you filled up the snapshot </FONT>
<FONT COLOR="#000000">>>>> device.  This is quite possible, as a yum install involves creating </FONT>
<FONT COLOR="#000000">>>>> several copies of the actual files you end up installing.</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> The way to see if this is what is happening would be to have another </FONT>
<FONT COLOR="#000000">>>>> terminal open, and periodically watch the output of "dmsetup status". </FONT>
<FONT COLOR="#000000">>>>> As new blocks are written to the rootfs snapshot device, you will see </FONT>
<FONT COLOR="#000000">>>>> the snapshot filling up.</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> If you get these IO errors even before the snapshot fills up, please try </FONT>
<FONT COLOR="#000000">>>>> to post some more detailed output.</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> In general, as discussed there are pros and cons with this method, and a </FONT>
<FONT COLOR="#000000">>>>> unionfs method.  I do think there are ways to work around the cons of </FONT>
<FONT COLOR="#000000">>>>> this method in such a way that it is useful.  For instance, I'll play </FONT>
<FONT COLOR="#000000">>>>> around and see if I can prescribe a process of using yum that will get </FONT>
<FONT COLOR="#000000">>>>> it to create all of its intermediate files in a native tmpfs (/dev/shm </FONT>
<FONT COLOR="#000000">>>>> or the like) instead of the rootfs, so that they don't eat into the </FONT>
<FONT COLOR="#000000">>>>> snapshot space.  Likewise, now that I have my first actual tester, maybe </FONT>
<FONT COLOR="#000000">>>>> I'll figure out some other creative ways to improve the method (I have </FONT>
<FONT COLOR="#000000">>>>> some ideas I need to experiment with...).</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> Thanks,</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> -dmc</FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > MikeD</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > "Messsage from syslogd@localhost <<A HREF="mailto:syslogd@localhost">mailto:syslogd@localhost</A>> at</FONT>
<FONT COLOR="#000000">>>>> >   kernel: journal commit i/o error"</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > On Wed, 2008-01-02 at 04:07 -0800, Mike Dickson wrote:</FONT>
<FONT COLOR="#000000">>>>> >> I have some time now.  I am attempting this tonight and tomorrow.  I </FONT>
<FONT COLOR="#000000">>>>> >> will let you know.</FONT>
<FONT COLOR="#000000">>>>> >></FONT>
<FONT COLOR="#000000">>>>> >> MikeD</FONT>
<FONT COLOR="#000000">>>>> >></FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > ------------------------------------------------------------------------</FONT>
<FONT COLOR="#000000">>>>> > </FONT>
<FONT COLOR="#000000">>>>> > --</FONT>
<FONT COLOR="#000000">>>>> > Fedora-livecd-list mailing list</FONT>
<FONT COLOR="#000000">>>>> > <A HREF="mailto:Fedora-livecd-list@redhat.com">Fedora-livecd-list@redhat.com</A> <<A HREF="mailto:Fedora-livecd-list@redhat.com">mailto:Fedora-livecd-list@redhat.com</A>></FONT>
<FONT COLOR="#000000">>>>> > <A HREF="https://www.redhat.com/mailman/listinfo/fedora-livecd-list">https://www.redhat.com/mailman/listinfo/fedora-livecd-list</A></FONT>
<FONT COLOR="#000000">>>>></FONT>
<FONT COLOR="#000000">>>> --</FONT>
<FONT COLOR="#000000">>>> Fedora-livecd-list mailing list</FONT>
<FONT COLOR="#000000">>>> <A HREF="mailto:Fedora-livecd-list@redhat.com">Fedora-livecd-list@redhat.com</A> <<A HREF="mailto:Fedora-livecd-list@redhat.com">mailto:Fedora-livecd-list@redhat.com</A>></FONT>
<FONT COLOR="#000000">>>> <A HREF="https://www.redhat.com/mailman/listinfo/fedora-livecd-list">https://www.redhat.com/mailman/listinfo/fedora-livecd-list</A></FONT>
<FONT COLOR="#000000">>> --</FONT>
<FONT COLOR="#000000">>> Fedora-livecd-list mailing list</FONT>
<FONT COLOR="#000000">>> <A HREF="mailto:Fedora-livecd-list@redhat.com">Fedora-livecd-list@redhat.com</A> <<A HREF="mailto:Fedora-livecd-list@redhat.com">mailto:Fedora-livecd-list@redhat.com</A>></FONT>
<FONT COLOR="#000000">>> <A HREF="https://www.redhat.com/mailman/listinfo/fedora-livecd-list">https://www.redhat.com/mailman/listinfo/fedora-livecd-list</A></FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> ------------------------------------------------------------------------</FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> --</FONT>
<FONT COLOR="#000000">> Fedora-livecd-list mailing list</FONT>
<FONT COLOR="#000000">> <A HREF="mailto:Fedora-livecd-list@redhat.com">Fedora-livecd-list@redhat.com</A></FONT>
<FONT COLOR="#000000">> <A HREF="https://www.redhat.com/mailman/listinfo/fedora-livecd-list">https://www.redhat.com/mailman/listinfo/fedora-livecd-list</A></FONT>


</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>