Aerospike default.dat文件无缘无故

时间:2015-06-05 23:07:53

标签: aerospike

我有一个正在运行的Aerospike服务器,在一个集合中有大约36,000条记录。所有我存储的都是这个集合的几个箱子。我已经配置了我的aerospike.conf文件来保存磁盘上的数据:

namespace default {
        replication-factor 2
        memory-size 4G
        default-ttl 0

        storage-engine device {
                file /opt/aerospike/data/default.dat
                filesize 2T
                data-in-memory true
        }
}

我遇到的问题是我的/opt/aerospike/data/default.dat文件在我的系统中列为大约2TB:

/opt/aerospike/data# ls -lh
total 10M
-rw------- 1 root root 2.0T Jun  5 19:01 default.dat

我的问题是:

  1. 为什么当我在Aerospike中使用的数据现在很小时,这个.dat文件必须是2TB?

  2. 我的硬盘限制为78GB,为什么我的Ubuntu系统没有让我没有出现驱动器空间错误?

  3. 系统磁盘空间看起来很好:

    df -h --total
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1       79G  4.2G   72G   6% /
    none            4.0K     0  4.0K   0% /sys/fs/cgroup
    udev            2.0G  8.0K  2.0G   1% /dev
    tmpfs           395M  424K  395M   1% /run
    none            5.0M     0  5.0M   0% /run/lock
    none            2.0G     0  2.0G   0% /run/shm
    none            100M     0  100M   0% /run/user
    total            83G  4.2G   76G   6% -
    

    有人有什么想法吗?

1 个答案:

答案 0 :(得分:5)

那么,

Aerospike使用稀疏文件(或其类型)来存储其文件存储。 因此,当您在命名空间配置中指定filesize 2T时,Aerospike将创建一个大小为2TB的稀疏文件,您将看到它。

http://en.wikipedia.org/wiki/Sparse_file

所以,它只是一个包含一些元数据而不是真正的2TB数据的文件。一旦文件内容实际填满了您的磁盘,您将在系统和Aerospike中看到通常的磁盘已满错误。