如何更改zpool的默认zfs选项?

时间:2019-02-25 11:41:47

标签: configuration filesystems default zfs

如何更改现有zpool上zfs文件系统的默认选项?

zpool手册告诉我如何在创建时设置此类选项(请注意,以-O代替-o来区分文件系统选项和池选项):

zpool create -O atime=off -O compression=on ...

这样,以后的文件系统创建命令可以缩短为:

zfs create -o atime=off -o compression=on ...

收件人:

zfs create ...

但是,如果我没有在创建池时设置-O怎么办?如何为现有池设置或更改它们?

1 个答案:

答案 0 :(得分:1)

您可以将它们设置在池中的顶级数据集中,如下所示:

import android.os.Parcel;
import android.os.Parcelable;

public class StoryModel implements Parcelable {
    public String imageUri;
    public String name;
    public String time;

    public StoryModel(String imageUri, String name, String time) {
        this.imageUri = imageUri;
        this.name = name;
        this.time = time;
    }

    public String getImageUri() {
        return imageUri;
    }

    public void setImageUri(String imageUri) {
        this.imageUri = imageUri;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public static Creator<StoryModel> getCREATOR() {
        return CREATOR;
    }

    public StoryModel(Parcel in) {
        imageUri = in.readString();
        name = in.readString();
        time = in.readString();
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(imageUri);
        dest.writeString(name);
        dest.writeString(time);
    }

    @SuppressWarnings("unused")
    public static final Creator<StoryModel> CREATOR = new Creator<StoryModel>() {
        @Override
        public StoryModel createFromParcel(Parcel in) {
            return new StoryModel(in);
        }

        @Override
        public StoryModel[] newArray(int size) {
            return new StoryModel[size];
        }
    };

    @Override
    public boolean equals(Object obj) {

        boolean same = false;
        if(obj != null && obj instanceof StoryModel){
            same = this.name == ((StoryModel) obj ).name;
        }
        return same;
    }

}

之后,您在其中创建的所有子数据集将继承这些属性。

大多数属性在创建时都会传播到子数据集,因此您可能必须在每个预先创建的文件系统/ zvol上手动运行它,以使整个池具有相同的属性。您可以使用相同的命令,只需替换您需要为其更新属性的数据集名称即可。