ディレクトリがあるのにdoes not existと言われてdatanodeが起動できなかった

hadoopのdatanodeを起動しようとして下記のようなエラーメッセージが出て起動できないことがあった。

INFO org.apache.hadoop.hdfs.server.common.Storage: Cannot access storage directory /data1/hadoop/dfs
INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /data1/hadoop/dfs does not exist.
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskErrorException: Invalid value for volsFailed : 1 , Volumes tolerated : 0
        at org.apache.hadoop.hdfs.server.datanode.FSDataset.<init>(FSDataset.java:975)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:389)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:299)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682)

INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:

/data1/hadoop/dfs does not exist とかいわれているが/data1/hadoop/dfs は存在するディレクトリなので?な感じだった。
#/data1/hadoop/dfsはdfs.data.dirで指定している値です。

そしたら下記のようにこの/data1パーティションに書き込みできないような状態だった。

$ touch  /data1/aaa
touch: cannot touch `/data1/aaa': Read-only file system

dmesgを見るとEXT3-fs errorとか出ておりファイルシステムがおかしくなっていたことが原因みたい。

fsck等でファイルシステムを復旧してからdatanodeを起動すればOK