Open Source Enablement
How to Adapt or Port CDH Components?
The source code of CDH components has become closed-source. If adaptation is required, obtain the source package and corresponding porting guide from the official CDH website.
How to Deploy Ceph?
Ceph is a unified distributed storage system designed to provide high performance, reliability, and scalability. Ceph block, file, and object storage can be deployed manually, semi-automatically, or using an automatic tool.
- In manual deployment, the ceph-deploy tool is used to deploy the service once and then synchronize the deployment information to other nodes.
For details about manual deployment, see:
Ceph Block Storage Deployment Guide (CentOS 7.6 & openEuler 20.03)
Ceph Object Storage Deployment Guide (CentOS 7.6 & openEuler 20.03)
Ceph File Storage Deployment Guide (CentOS 7.6 & openEuler 20.03)
- Semi-automatic deployment is implemented using ceph-ansible scripts.
For details, see Ceph-Ansible Deployment Guide (CentOS 7.6 & openEuler 20.03).
- In automatic deployment, you can fill in configuration parameters in a script to quickly deploy the software. Currently, automatic deployment can be implemented only on CentOS 7.6, and Ceph 14.2.1 is installed by default.
For details, see Ceph Automatic Deployment Guide (CentOS 7.6).
How to Install Docker?
Docker is an open-source application container engine. Developers can package their applications and dependencies into a portable container and then publish them to any popular Linux machine.
For details about how to install Docker 19.03.10, see Docker Installation Guide (CentOS & openEuler).
What Do I Do If the fio Test Fails?
fio is an open-source I/O pressure test tool used to test the storage I/O performance. It supports multiple engines. The following are typical cases of faults encountered during fio testing:
- In the Kunpeng BoostKit for SDS scenario, after a Ceph cluster is deployed, the fio test is performed. During the test, the management node displays a command error, and the remote client displays a message indicating that the server or client version does not match. To troubleshoot this issue, see Failed to Restart OSDs in a Ceph Cluster.
- In the Kunpeng BoostKit for SDS scenario, after a Ceph cluster is deployed, the fio test is performed. During the test, a message is displayed indicating that the libaio engine fails to be loaded. To troubleshoot this issue, see Failed to Load libaio During the fio Test.
How to Bind Docker Containers to Cores?
When multiple containers run on a server, the services in different containers may be different. You can bind containers to CPU cores and configure NUMA affinity to maximize the container performance based on the application scenario. For details about core binding, see NUMA Affinity.
How to Deploy Kubernetes?
Kubernetes is an open-source system that automatically deploys, extends, and manages containerized applications. For details about the deployment procedure, see Kubernetes Deployment Guide.
How to Install libtool?
Run the yum command to install, for example:
yum install libtool -y
How to Install MySQL?
MySQL can be installed using an RPM package (MySQL 8.0.17) from the official website, an RPM package from a mirror site (recommended), or compiled from the source. Select one of the installation methods as required. For details, see MySQL Installation Guide.
How to Port MySQL?
- You need to upgrade MySQL 8.0.16 by installing the patch on the official website.
- For MySQL 8.0.17 on CentOS 7.6, it is a good practice that you use the dedicated software porting function of the Kunpeng Porting Advisor to port MySQL 8.0.17 to the Kunpeng platform. For details, see Dedicated Software Porting.
- For MySQL on openEuler or other CentOS versions, see MySQL Porting Guide.
How to Port Nginx?
- For Nginx 1.14.2 on CentOS 7.6, it is a good practice that you use the dedicated software porting function of the Kunpeng Porting Advisor to port Nginx 1.14.2 to the Kunpeng platform. For details, see Dedicated Software Porting.
- For Nginx on openEuler or other CentOS versions, see Nginx Porting Guide.
How to Install PostgreSQL?
PostgreSQL can be installed using an RPM package from a mirror site or compiled from the source. Select one of the methods as required. For details, see PostgreSQL Installation Guide.
How to Install Redis?
Programs required in Redis installation are downloaded from their official websites. Most of these programs are compiled based on the x86 platform and may contain modules that are implemented in platform-dependent languages (such as C/C++). Therefore, incompatibility issues may occur if these programs directly run on Kunpeng servers. To resolve the problem, you need to download and compile the source code and then deploy the programs. The deployment procedure is the same regardless of the program compilation platform.
How to Install libvirt?
libvirt is an open-source API, daemon, and management tool for managing hardware virtualization. It can be used to manage KVM, Xen, VMware ESXi, QEMU, and other virtualization technologies.
For details about how to install libvirt, see libvirt 6.9.0 Installation Guide (openEuler 20.03).
How to Port Kafka?
Kafka is an open-source streaming platform developed by Apache Software Foundation in Scala and Java. As a distributed publish-subscribe messaging system with high throughput, Kafka can process all action stream data on consumer-scale websites.
For details about how to port Kafka, see Kafka Porting Guide.
How to Port Flink?
Flink is a distributed, high-performance, and high-availability open-source big data processing framework. It features in-memory computing and stream processing, and is used for stateful computing of unbounded and bounded data streams.
For details about how to port Flink, see Flink Porting Guide.
Can I Install Docker and Deploy a Kubernetes Cluster on a Kunpeng Arm Server?
Does the Kunpeng Server Support oVirt Nested Virtualization?
Nested virtualization is not supported, but KVM virtualization is supported.
How to Restart Spark in Spark on YARN Mode?
- Go to the sbin directory in the Spark directory, for example, /usr/local/spark/sbin/.
cd /usr/local/spark/sbin/
- Stop Spark.
./stop-all.sh
- Start Spark again.
./start-all.sh
Does the Kunpeng Server Support AMD64 Images of Kubernetes and Docker?
The Kunpeng server uses the Arm architecture, while AMD64 images are in the x86-64 architecture. The instruction sets are incompatible. Therefore, the Kunpeng server does not support AMD64 images. Arm servers support AArch64 images.
Can I Install Windows VMs on Kunpeng 920 QEMU?
- Kunpeng 920 series processors use the Arm architecture, and no official version supports Windows VMs.
- If you want to start a Windows VM on an Arm server, you need to install the Windows OS for Arm and modify the QEMU startup parameters accordingly.
Can I Migrate Kunpeng VMs on Huawei Cloud Stack Online to Huawei Cloud?
The migration can be performed if Huawei Cloud supports the source architecture.
Does the Avago SAS3408iMR RAID Controller Card Support Virtualization?
How to Obtain the Offline Image Package of flannel?
- Click here to download the kube-flannel.yml file and save it to the destination path, for example, /home.
- Deploy the flannel component.
kubectl apply -f /home/kube-flannel.yml
Does the openEuler 20.03 LTS SP3 Kernel Support KVM Virtualization?
openEuler 20.03 supports KVM virtualization. For details, see KVM VM Installation Guide (CentOS & openEuler).
Will I Be Billed for Using KVM?
KVM is open-source software and is free of charge.
How to Create/Delete External Snapshots of a Running VM (KVM + QEMU) on a Kunpeng Server?
Questions:
The current environment utilizes the UOS with a Debian repository. VMs created based on KVM and QEMU are deployed on a Kunpeng server. After a snapshot is created using the snapshot-create-as command, the snapshot size increases indefinitely, and the snapshot chain cannot be shortened.
- How to create a snapshot?
- How to delete a snapshot without stopping the VM?
Answer:
- You are advised to use the openEuler 22.03 SP2 OS and the QEMU 6.2.0 version provided by the Yum repository of the OS. For details, see Table 1.
- If you do not want to replace the OS, you are advised to upgrade the Debian repository version.
The following describes how to create and delete snapshots if you use the software and OS versions listed in Table 1.
- Create a snapshot when the VM is running.
virsh snapshot-create-as --domain VM_NAME SNAPSHOT_NAME SNAPSHOT_DESC --disk-only --diskspec vda,snapshot=external --atomic
- Modify the following parameters as required:
- Replace VM_NAME with the name of the VM for which you want to create a snapshot.
- Replace SNAPSHOT_NAME with the name of the snapshot to be created.
- Replace SNAPSHOT_DESC with the description of the snapshot to be created.
- Replace vda with the VM disk that creates the snapshot.
- By default, the external disk snapshot and the VM disk are in the same directory.
- A maximum of 199 external disk snapshots can be created.
- After the external disk snapshot is created, the VM disk device points to the created external disk snapshot.
After the snapshot is created, you can query the VM disk information.virsh domblklist VM_NAME
Example result:

- Modify the following parameters as required:
- To delete a snapshot, commit it first.
Before deleting a snapshot, ensure that you have backed up all important data. A snapshot cannot be restored after being deleted. Exercise caution when performing this operation.
- Commit the snapshot when the VM is running.
virsh blockcommit --domain VM_NAME vda --base path_to_base_snapshot --top path_to_top_snapshot --wait --verbose
Modify the following parameters as required:
- Replace VM_NAME with the name of the VM.
- Replace path_to_base_snapshot with the absolute path to the base file to which the snapshot is to be committed. The file cannot be the initial VM disk file.
- Replace path_to_top_snapshot with the absolute path to the top file to be committed. The file cannot be the latest external disk snapshot.
- Delete the unnecessary snapshot.
virsh snapshot-delete --domain VM_NAME SNAPSHOT_NAME --metadata rm path_to_snapshot
- Modify the following parameters as required:
- Replace VM_NAME with the name of the target VM.
- Replace SNAPSHOT_NAME with the name of the target snapshot.
- Replace path_to_snapshot with the absolute path to the snapshot file.
- Do not delete the initial VM disk file, the latest external disk snapshot, and the final consolidated base external disk snapshot.
- Modify the following parameters as required:
- Commit the snapshot when the VM is running.
Does Kunpeng Provide Advanced Virtualization Configuration Functions Similar to IOMMU in x86?
The Kunpeng architecture provides the system memory management unit (SMMU).
- IOMMU: Typically utilized on physical machines to manage access to system memory by I/O devices on a single physical host.
- SMMU: Typically utilized in virtualized environments, such as VM or container environments, to manage device access across multiple VMs or containers. For details about how to configure SMMU in the BIOS, see TaiShan Server BIOS Parameter Reference (Kunpeng 920 Processor).
How to Deploy YOLO in the Kunpeng Environment?
For details, see the deployment guide on the official YOLO website. Ensure that operations for enabling and adapting to the Kunpeng AArch64 architecture are implemented throughout the deployment process. For example, when installing the dependency library Anaconda3 of YOLO, you need to select the installation package that supports AArch64. The installation of other dependency packages is similar.