PouchContainer
  • 简介
  • 概述
    • PouchContainer 入门
    • 容器技术概述
    • PouchContainer 特点
  • 使用 PouchContainer 开发
    • 在镜像中构建应用
    • 镜像发布
    • 镜像运行
  • 使用 Kubernetes 管理 PouchContainer
    • 关于 Kubernetes
    • 借助 PouchContainer 部署强隔离 Pod
    • 如何定制 CRI
    • 使用 CNI 插件管理网络
    • 使用 CSI 插件管理存储
  • PouchContainer 隔离性
    • Diskquota
    • LXCFS
    • runV
    • 网络
    • 内核级隔离
  • 网络配置
    • 网络配置概述
    • 网络配置
      • Bridge
      • Host
      • Overlay
      • Macvlan
      • 禁用网络
    • 其他配置
      • IPv6
      • iptables
      • 代理服务器
  • 存储配置
    • 存储配置概述
    • Volume
    • Bind mounts
    • tmpfs mounts
    • 存储插件
      • Ceph
      • 远程存储
    • FAQ
  • 监控
    • 容器监控
    • 服务监控
    • 普罗米修斯
  • 日志
    • 查看日志
    • 日志配置
    • 日志插件
  • 安全
    • 安全概述
    • 服务保护
    • 客户端认证
    • 可信镜像
    • 杀毒软件与 PouchContainer
    • 应用加固
Powered by GitBook
On this page
  • Diskquota 是什么
  • PouchContainer 中的 Diskquota
  • 概述
  • Rootfs Diskquota
  • Volume Diskquota
  1. PouchContainer 隔离性

Diskquota

PreviousPouchContainer 隔离性NextLXCFS

Last updated 6 years ago

Diskquota 是什么

Diskquota 是一种用于限制文件系统磁盘使用的技术。 PouchContainer 使用 Diskquota 来限制容器文件系统的磁盘空间使用。众所周知,基于块设备的方法可以通过设置块设备的大小来限制磁盘空间,但基于文件系统的方法则难以实现。Diskquota 就是用于来限制文件系统的磁盘使用的。目前 PouchContainer 支持基于 graphdriver overlayfs 的 Diskquota。

目前底层文件系统中只有 EXT4 和 XFS 支持 Diskquota,另外,有三种方式来实现:user quota,group quota 和 project quota。

限制磁盘使用有两个维度:

  • 使用配额(块配额):用于限制容器文件系统目录使用量(并非 inode 数量)。

  • 文件配额(inode配额):用于限制文件或 inode 的分配。

PouchContainer 目前仅支持块配额,暂时没有支持inode配额的计划。

PouchContainer 中的 Diskquota

PouchContainer 中的 Diskquota 依赖于运行在容器中的内核版本,下表所示为在不同文件系统中支持 Diskquota 的内核版本。

user/group quota

project quota

EXT4

>= 2.6

>= 4.5

XFS

>= 2.6

>= 3.10

尽管不同的文件系统在相应内核版本下均支持了 Diskquota,但用户依然需要安装 。该配额工具目前并未被打包进 PouchContainer 的 rpm 包中,之后我们会对此作出支持。

概述

在 PouchContainer 中容器有两种方法访问底层文件系统。一种是容器的 rootfs,另一种是宿主机映射到容器内部的 volume。这两个维度的 Diskquota 均有支持。

Rootfs Diskquota

用户可以使用选项 --disk-quota 来限制一个已经创建的容器的 rootfs 磁盘使用量,例如 --disk-quota 10g。设置成功后,可以通过 df -h 命令看到 rootfs 的大小为 10GB,表示 Diskquota 已经生效。

$ pouch run -ti --disk-quota 10g registry.hub.docker.com/library/busybox:latest df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  10.0G     24.0K     10.0G   0% /
tmpfs                    64.0M         0     64.0M   0% /dev
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                    64.0M         0     64.0M   0% /run
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                    64.0M         0     64.0M   0% /proc/sched_debug
tmpfs                     1.9G         0      1.9G   0% /sys/firmware
tmpfs                     1.9G         0      1.9G   0% /proc/scsi

Volume Diskquota

用户也可以在创建容器时设置 Volume 的磁盘配额。 直接使用 --option 或 -o 选项来标识磁盘限制,例如 -o size=10g。

在创建 Diskquota 限制的 Volume 后,用户可以将该 Volume 绑定到某运行中的容器上。在下面的例子中,运行命令 pouch run -ti -v volume-quota-test:/mnt registry.hub.docker.com/library/busybox:latest df -h,在运行中的容器中,/mnt 目录的大小被限制为 10GB。

$ pouch volume create -n volume-quota-test -d local -o mount=/data/volume -o size=10g
Name:         volume-quota-test
Scope:
Status:       map[mount:/data/volume sifter:Default size:10g]
CreatedAt:    2018-3-24 13:35:08
Driver:       local
Labels:       map[]
Mountpoint:   /data/volume/volume-quota-test

$ pouch run -ti -v volume-quota-test:/mnt registry.hub.docker.com/library/busybox:latest df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  20.9G    212.9M     19.6G   1% /
tmpfs                    64.0M         0     64.0M   0% /dev
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                    64.0M         0     64.0M   0% /run
/dev/sdb2                10.0G      4.0K     10.0G   0% /mnt
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                    64.0M         0     64.0M   0% /proc/sched_debug
tmpfs                     1.9G         0      1.9G   0% /sys/firmware
tmpfs                     1.9G         0      1.9G   0% /proc/scsi
quota-tools-4.04