Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive

Expanding the Storage Space

Updated on 2024-10-14 GMT+08:00

The storage classes that can be expanded for CCE nodes are as follows:

Table 1 Capacity expansion methods

Type

Name

Purpose

Capacity Expansion Method

Node disk

System disk

A disk attached to a node for installing the operating system

Expanding System Disk Capacity

Data disk

The first data disk attached to a node for container engine and kubelet

Expanding Data Disk Capacity

Container storage

Pod container space

The base size of a container, which is, the upper limit of the disk space occupied by each pod (including the storage space occupied by container images)

Expanding the Capacity of a Data Disk Used by Pod (basesize)

PVC

Storage resources mounted to the containers

Expanding a PVC

Expanding System Disk Capacity

EulerOS 2.9 is used as the sample OS. There is only one partition (/dev/vda1) with a capacity of 50 GiB in the system disk /dev/vda, and then 50 GiB is added to the system disk. In this example, the additional 50 GiB is allocated to the existing /dev/vda1 partition.

  1. Expand the system disk capacity on the EVS console.

    Only the storage capacity of the EVS disk is expanded. You also need to perform the following steps to expand the partition and file system.

  2. Log in to the node and run the growpart command to check whether growpart has been installed.

    If the tool operation guide is displayed, the growpart has been installed. Otherwise, run the following command to install growpart:

    yum install cloud-utils-growpart

  3. Run the following command to view the total capacity of the system disk /dev/vda:

    fdisk -l

    If the following information is displayed, the total capacity of /dev/vda is 100 GiB.

    [root@test-48162 ~]# fdisk -l
    Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x78d88f0b
    
    Device     Boot Start       End   Sectors Size Id Type
    /dev/vda1  *     2048 104857566 104855519  50G 83 Linux
    
    Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    Disk /dev/mapper/vgpaas-dockersys: 90 GiB, 96632569856 bytes, 188735488 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    Disk /dev/mapper/vgpaas-kubernetes: 10 GiB, 10733223936 bytes, 20963328 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

  4. Run the following command to check the capacity of the system disk partition /dev/vda1:

    df -TH

    Information similar to the following is displayed:

    [root@test-48162 ~]# df -TH
    Filesystem                    Type      Size  Used Avail Use% Mounted on
    devtmpfs                      devtmpfs  1.8G     0  1.8G   0% /dev
    tmpfs                         tmpfs     1.8G     0  1.8G   0% /dev/shm
    tmpfs                         tmpfs     1.8G   13M  1.8G   1% /run
    tmpfs                         tmpfs     1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/vda1                     ext4      53G  3.3G   47G   7% /
    tmpfs                         tmpfs     1.8G   75M  1.8G   5% /tmp
    /dev/mapper/vgpaas-dockersys  ext4       95G  1.3G   89G   2% /var/lib/docker
    /dev/mapper/vgpaas-kubernetes ext4       11G   39M   10G   1% /mnt/paas/kubernetes/kubelet
    ...

  5. Run the following command to extend the partition using growpart:

    growpart System disk Partition number

    The partition number is 1 because there is only one /dev/vda1 partition in the system disk, as shown in the following command:

    growpart /dev/vda 1

    Information similar to the following is displayed:

    CHANGED: partition=1 start=2048 old: size=104855519 end=104857567 new: size=209713119 end=209715167

  6. Run the following command to extend the file system:

    resize2fs Disk partition

    An example command is as follows:

    resize2fs /dev/vda1

    Information similar to the following is displayed:

    resize2fs 1.45.6 (20-Mar-2020)
    Filesystem at /dev/vda1 is mounted on /; on-line resizing required
    old_desc_blocks = 7, new_desc_blocks = 13
    The filesystem on /dev/vda1 is now 26214139 (4k) blocks long.

  7. Run the following command to view the new capacity of the /dev/vda1 partition:

    df -TH

    Information similar to the following is displayed:

    [root@test-48162 ~]# df -TH
    Filesystem                    Type      Size  Used Avail Use% Mounted on
    devtmpfs                      devtmpfs  1.8G     0  1.8G   0% /dev
    tmpfs                         tmpfs     1.8G     0  1.8G   0% /dev/shm
    tmpfs                         tmpfs     1.8G   13M  1.8G   1% /run
    tmpfs                         tmpfs     1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/vda1                     ext4     106G  3.3G   98G   4% /
    tmpfs                         tmpfs     1.8G   75M  1.8G   5% /tmp
    /dev/mapper/vgpaas-dockersys  ext4       95G  1.3G   89G   2% /var/lib/docker
    /dev/mapper/vgpaas-kubernetes ext4       11G   39M   10G   1% /mnt/paas/kubernetes/kubelet
    ...

  8. Log in to the CCE console and click the cluster. In the navigation pane, choose Nodes. Click More > Sync Server Data in the row containing the target node.

Expanding Data Disk Capacity

The first data disk of a CCE node is composed of container engine and kubelet space by default. If either of them reaches full capacity, you can expand the disk space as needed.

Expanding the Container Engine Capacity

The available container engine space affects image pulls and container startup and running. This section uses containerd as an example to describe how to expand the container engine capacity.

  1. Expand the capacity of a data disk on the EVS console.

    Only the storage capacity of the EVS disk is expanded. You also need to perform the following steps to expand the capacity of the logical volume and file system.

  2. Log in to the CCE console and click the cluster. In the navigation pane, choose Nodes. Click More > Sync Server Data in the row containing the target node.
  3. Log in to the target node.
  4. Run the lsblk command to check the block device information of the node.

    A data disk is divided depending on the container storage Rootfs:

    Overlayfs: No independent thin pool is allocated. Image data is stored in dockersys.

    1. Check the disk and partition sizes of the device.
      # lsblk
      NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      vda                   8:0    0   50G  0 disk 
      └─vda1                8:1    0   50G  0 part /
      vdb                   8:16   0  200G  0 disk      # Data disk has been expanded but not allocated
      ├─vgpaas-dockersys  253:0    0   90G  0 lvm  /var/lib/containerd          # Space used by the container engine
      └─vgpaas-kubernetes 253:1    0   10G  0 lvm  /mnt/paas/kubernetes/kubelet  # Space used by Kubernetes
    2. Expand the disk capacity.

      Add the new disk capacity to the dockersys logical volume used by the container engine.

      1. Expand the PV capacity so that LVM can identify the new EVS capacity. /dev/vdb specifies the physical volume where dockersys is located.
        pvresize /dev/vdb

        Information similar to the following is displayed:

        Physical volume "/dev/vdb" changed
        1 physical volume(s) resized or updated / 0 physical volume(s) not resized
      2. Expand 100% of the free capacity to the logical volume. vgpaas/dockersys specifies the logical volume used by the container engine.
        lvextend -l+100%FREE -n vgpaas/dockersys

        Information similar to the following is displayed:

        Size of logical volume vgpaas/dockersys changed from <90.00 GiB (23039 extents) to <190.00 GiB (48639 extents).
        Logical volume vgpaas/dockersys successfully resized.
      3. Adjust the size of the file system. /dev/vgpaas/dockersys specifies the file system path of the container engine.
        resize2fs /dev/vgpaas/dockersys

        Information similar to the following is displayed:

        Filesystem at /dev/vgpaas/dockersys is mounted on /var/lib/containerd; on-line resizing required
        old_desc_blocks = 12, new_desc_blocks = 24
        The filesystem on /dev/vgpaas/dockersys is now 49807360 (4k) blocks long.

Expanding the kubelet Capacity

The kubelet space serves as a temporary storage location for kubelet components and EmptyDir. You can follow the following steps to increase the kubelet capacity:

  1. Expand the capacity of a data disk on the EVS console.

    Only the storage capacity of the EVS disk is expanded. You also need to perform the following steps to expand the capacity of the logical volume and file system.

  2. Log in to the CCE console and click the cluster. In the navigation pane, choose Nodes. Click More > Sync Server Data in the row containing the target node.
  3. Log in to the target node.
  4. Run lsblk to view the block device information of the node.

    # lsblk
    NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda                   8:0    0   50G  0 disk 
    └─vda1                8:1    0   50G  0 part /
    vdb                   8:16   0  200G  0 disk      # Data disk has been expanded but not allocated
    ├─vgpaas-dockersys  253:0    0   90G  0 lvm  /var/lib/containerd            # Space used by the container engine
    └─vgpaas-kubernetes 253:1    0   10G  0 lvm  /mnt/paas/kubernetes/kubelet  # Space used by Kubernetes

  5. Perform the following operations on the node to add the new disk capacity to the kubelet space:

    1. Expand the PV capacity so that LVM can identify the new EVS capacity. /dev/vdb specifies the physical volume where kubelet is located.
      pvresize /dev/vdb

      Information similar to the following is displayed:

      Physical volume "/dev/vdb" changed
      1 physical volume(s) resized or updated / 0 physical volume(s) not resized
    2. Expand 100% of the free capacity to the logical volume. vgpaas/kubernetes specifies the logical volume used by kubelet.
      lvextend -l+100%FREE -n vgpaas/kubernetes

      Information similar to the following is displayed:

      Size of logical volume vgpaas/kubernetes changed from <10.00 GiB (2559 extents) to <110.00 GiB (28159 extents).
      Logical volume vgpaas/kubernetes successfully resized.
    3. Adjust the size of the file system. /dev/vgpaas/kubernetes specifies the file system path of the container engine.
      resize2fs /dev/vgpaas/kubernetes

      Information similar to the following is displayed:

      Filesystem at /dev/vgpaas/kubernetes is mounted on /mnt/paas/kubernetes/kubelet; on-line resizing required
      old_desc_blocks = 2, new_desc_blocks = 14
      The filesystem on /dev/vgpaas/kubernetes is now 28834816 (4k) blocks long.

Expanding the Capacity of a Data Disk Used by Pod (basesize)

  1. Log in to the CCE console and click the cluster name to access the cluster console.
  2. Choose Nodes from the navigation pane.
  3. Click the Nodes tab, locate the row containing the target node, and choose More > Reset Node in the Operation column.

    NOTICE:

    Resetting a node may make unavailable the node-specific resources (such as local storage and workloads scheduled to this node). Exercise caution when performing this operation to avoid impact on running services.

  4. Click Yes.
  5. Reconfigure node parameters.

    If you need to adjust the container storage space, pay attention to the following configurations:

    Storage Settings: Click Expand next to the data disk to set the following parameters:

    Space Allocation for Pods: indicates the base size of a pod. It is the maximum size that a workload's pods (including the container images) can grow to in the disk space. Proper settings can prevent pods from taking all the disk space available and avoid service exceptions. It is recommended that the value is less than or equal to 80% of the container engine space. This parameter is related to the node OS and container storage rootfs and is not supported in some scenarios. For details, see Data Disk Space Allocation.

  6. After the node is reset, log in to the node and run the following command to access the container and check whether the container storage capacity has been expanded:

    docker exec -it container_id /bin/sh or kubectl exec -it container_id /bin/sh

    df -h

Expanding a PVC

Cloud storage:

  • OBS and SFS: There is no storage restriction and capacity expansion is not required.
  • EVS:
    • You can expand the capacity of automatically created volumes on the console. The procedure is as follows:
      1. Choose Storage in the navigation pane. In the right pane, click the PVCs tab. Click More in the Operation column of the target PVC and select Scale-out.
      2. Enter the capacity to be added and click OK.
  • For SFS Turbo, expand the capacity on the SFS console and then change the capacity in the PVC.

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback