Hi, ted:
        After I make space, the zookeeper server also can not start normally. 
Following log is printed. It shows "Last transaction was partial". I must clear 
the data (/data/version-2), then the server can restart normally.
    Under the disk full situation, if the cluster is unavailable, the TCP 
connection between the server and the client would break. So when the cluster 
comes back normally, the client can not change to connected status.
    I want to know if this is the limitation that zookeeper can not meet disk 
full.

-----邮件原件-----
发件人: Ted Dunning [mailto:[email protected]] 
发送时间: 2011年6月11日 14:25
收件人: [email protected]
主题: Re: disk full

Zookeeper provides guarantees of durability and reliability.  When the
disk is full, transactions cannot be persisted to disk and thus these
guarantees cannot be made.

If you restart ZK after making space, then it should continue
reliably.  One way to do this is to get rid of old transaction logs
that are no longer needed.  Another is to plan your needs more
precisely so conflicts on space do not occur.  Sometimes this is quite
difficult which is one reason that some people opt for dedicated
machines for critical services like this.

On Sat, Jun 11, 2011 at 7:04 AM, Donna Li <[email protected]> wrote:
> Hi,all:
>
>
>
> What is the impact of disk full to zookeeper? Why restart zookeeper can
> not resolve the problem? I must clear the data of the zookeeper and
> restart. The print error is:
>
>
>
>
>
> 2011-06-09 11:44:29,204 - INFO  [main:QuorumPeerConfig@90] - Reading
> configuration from:
> /usr/local/rss/zookeeper/tool/zookeeper-3.3.2/bin/../conf/zoo.cfg
>
> 2011-06-09 11:44:29,211 - WARN  [main:QuorumPeerConfig@266] -
> Non-optimial configuration, consider an odd number of servers.
>
> 2011-06-09 11:44:29,211 - INFO  [main:QuorumPeerConfig@310] - Defaulting
> to majority quorums
>
> 2011-06-09 11:44:29,223 - INFO  [main:QuorumPeerMain@119] - Starting
> quorum peer
>
> 2011-06-09 11:44:29,239 - INFO  [main:NIOServerCnxn$Factory@143] -
> binding to port 0.0.0.0/0.0.0.0:2181
>
> 2011-06-09 11:44:29,251 - INFO  [main:QuorumPeer@818] - tickTime set to
> 2000
>
> 2011-06-09 11:44:29,252 - INFO  [main:QuorumPeer@829] -
> minSessionTimeout set to -1
>
> 2011-06-09 11:44:29,252 - INFO  [main:QuorumPeer@840] -
> maxSessionTimeout set to -1
>
> 2011-06-09 11:44:29,252 - INFO  [main:QuorumPeer@855] - initLimit set to
> 5
>
> 2011-06-09 11:44:29,266 - INFO  [main:FileSnap@82] - Reading snapshot
> /usr/local/rss/zookeeper/data/version-2/snapshot.7000011ff
>
> 2011-06-09 11:44:29,301 - ERROR [main:Util@238] - Last transaction was
> partial.
>
> 2011-06-09 11:44:29,302 - FATAL [main:QuorumPeer@399] - Unable to load
> database on disk
>
> java.io.EOFException
>
>        at java.io.DataInputStream.readInt(DataInputStream.java:375)
>
>        at
> org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
>
>        at
> org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeade
> r.java:65)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStr
> eamCreated(FileTxnLog.java:508)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.creat
> eInputArchive(FileTxnLog.java:527)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToN
> extLog(FileTxnLog.java:493)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(
> FileTxnLog.java:575)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSn
> apLog.java:145)
>
>        at
> org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:197)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:397)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPe
> erMain.java:143)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(Quoru
> mPeerMain.java:103)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.ja
> va:76)
>
> 2011-06-09 11:44:29,303 - FATAL [main:QuorumPeerMain@87] - Unexpected
> exception, exiting abnormally
>
> java.lang.RuntimeException: Unable to run quorum server
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:400)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPe
> erMain.java:143)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(Quoru
> mPeerMain.java:103)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.ja
> va:76)
>
> Caused by: java.io.EOFException
>
>        at java.io.DataInputStream.readInt(DataInputStream.java:375)
>
>        at
> org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
>
>        at
> org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeade
> r.java:65)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStr
> eamCreated(FileTxnLog.java:508)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.creat
> eInputArchive(FileTxnLog.java:527)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToN
> extLog(FileTxnLog.java:493)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(
> FileTxnLog.java:575)
>
>        at
> org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSn
> apLog.java:145)
>
>        at
> org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:197)
>
>        at
> org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:397)
>
>        ... 3 more
>
>

Reply via email to