This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.14.2.2. 노드에 커널 모듈 추가
대부분의 일반적인 하드웨어의 경우 컴퓨터가 시작되면 Linux 커널에 이러한 하드웨어를 사용하는 데 필요한 장치 드라이버 모듈이 포함됩니다. 그러나 일부 하드웨어의 경우 해당 모듈은 Linux에서 제공되지 않습니다. 따라서 각 호스트 컴퓨터에 대해 이러한 모듈을 제공하는 방법을 찾아야합니다. 이 단계에서는 OpenShift Container Platform 클러스터 노드에 대해 이를 수행하는 방법을 설명합니다.
이 프로세스에 따라 커널 모듈을 처음 배포할 때 현재 커널에서 모듈을 사용할 수 있게 됩니다. 새 커널이 설치되면 kmods-via-containers 소프트웨어가 다시 빌드되고 모듈이 배포되어 새 커널과 호환되는 버전의 모듈을 사용할 수 있습니다.
이 기능이 각 노드에서 모듈을 최신 상태로 유지하는 방법은 다음과 같습니다.
- 새 커널이 설치되었는지 감지하기 위해 부팅시 시작되는 각 노드에 systemd 서비스를 추가합니다.
- 새로운 커널이 감지되면 서비스는 모듈을 다시 빌드하여 커널에 설치합니다.
이 단계에 필요한 소프트웨어에 대한 자세한 내용은 kmods-via-containers github 사이트를 참조하십시오.
다음의 몇 가지 중요 사항에 유의하십시오.
- 이 단계는 기술 프리뷰입니다.
-
소프트웨어 툴과 샘플은 공식 RPM 형식으로 제공되지 않으며 현재 이 절차에 명시된 비공식
github.com
사이트에서만 구할 수 있습니다. - 이 절차를 통해 추가할 수 있는 타사 커널 모듈은 Red Hat에서 지원하지 않습니다.
-
이 절차에서는 커널 모듈을 빌드하는 데 필요한 소프트웨어가 RHEL 8 컨테이너에 배포됩니다. 노드가 새 커널을 가져 오면 각 노드에서 모듈이 자동으로 다시 빌드됩니다. 따라서 각 노드는 모듈을 다시 빌드하는 데 필요한 커널 및 관련 패키지가 포함된
yum
저장소에 액세스해야 합니다. 해당 콘텐츠는 유효한 RHEL 서브스크립션을 통해 효과적으로 사용할 수 있습니다.
14.2.2.1. 커널 모듈 컨테이너 빌드 및 테스트 링크 복사링크가 클립보드에 복사되었습니다!
커널 모듈을 OpenShift Container Platform 클러스터에 배포하기 전에 별도의 RHEL 시스템에서 프로세스를 테스트할 수 있습니다. 커널 모듈의 소스 코드, KVC 프레임 워크 및 kmod-via-containers 소프트웨어를 수집합니다. 다음으로 모듈을 빌드하고 테스트합니다. RHEL 8 시스템에서 이를 수행하려면 다음 프로세스를 따르십시오.
프로세스
RHEL 8 시스템을 등록합니다.
subscription-manager register
# subscription-manager register
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL 8 시스템에 서브스크립션을 연결합니다.
subscription-manager attach --auto
# subscription-manager attach --auto
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소프트웨어 및 컨테이너를 빌드하는 데 필요한 소프트웨어를 설치합니다.
yum install podman make git -y
# yum install podman make git -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kmod-via-containers
저장소를 복제합니다.저장소의 폴더를 만듭니다.
mkdir kmods; cd kmods
$ mkdir kmods; cd kmods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 저장소를 복제합니다.
git clone https://github.com/kmods-via-containers/kmods-via-containers
$ git clone https://github.com/kmods-via-containers/kmods-via-containers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
RHEL 8 빌드 호스트에 KVC 프레임 워크 인스턴스를 설치하여 모듈을 테스트합니다.
kmods-via-container
systemd 서비스가 추가되어 로드됩니다.kmod-via-containers
디렉터리로 변경합니다.cd kmods-via-containers/
$ cd kmods-via-containers/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KVC 프레임워크 인스턴스를 설치합니다.
sudo make install
$ sudo make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd 관리자 설정을 다시로드합니다.
sudo systemctl daemon-reload
$ sudo systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
커널 모듈의 소스 코드를 가져옵니다. 소스 코드는 제어할 수 없지만 다른 사람이 제공하는 타사 모듈을 빌드하는 데 사용될 수 있습니다. 다음과 같이 시스템에 복제할 수있는
kvc-simple-kmod
예제에 표시된 내용과 유사한 내용이 필요합니다.cd .. ; git clone https://github.com/kmods-via-containers/kvc-simple-kmod
$ cd .. ; git clone https://github.com/kmods-via-containers/kvc-simple-kmod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 설정 파일
simple-kmod.conf
을 편집하고 Dockerfile의 이름을Dockerfile.rhel
로 변경합니다.kvc-simple-kmod
디렉터리로 변경합니다.cd kvc-simple-kmod
$ cd kvc-simple-kmod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dockerfile의 이름을 바꿉니다.
cat simple-kmod.conf
$ cat simple-kmod.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dockerfile 예
KMOD_CONTAINER_BUILD_CONTEXT="https://github.com/kmods-via-containers/kvc-simple-kmod.git" KMOD_CONTAINER_BUILD_FILE=Dockerfile.rhel KMOD_SOFTWARE_VERSION=dd1a7d4 KMOD_NAMES="simple-kmod simple-procfs-kmod"
KMOD_CONTAINER_BUILD_CONTEXT="https://github.com/kmods-via-containers/kvc-simple-kmod.git" KMOD_CONTAINER_BUILD_FILE=Dockerfile.rhel KMOD_SOFTWARE_VERSION=dd1a7d4 KMOD_NAMES="simple-kmod simple-procfs-kmod"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
커널 모듈의
kmods-via-containers @.service
인스턴스 (이 예제에서는simple-kmod
)를 만듭니다.sudo make install
$ sudo make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kmods-via-containers @.service
인스턴스를 활성화합니다.sudo kmods-via-containers build simple-kmod $(uname -r)
$ sudo kmods-via-containers build simple-kmod $(uname -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd 서비스를 활성화하고 시작합니다.
sudo systemctl enable kmods-via-containers@simple-kmod.service --now
$ sudo systemctl enable kmods-via-containers@simple-kmod.service --now
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 상태를 확인합니다.
sudo systemctl status kmods-via-containers@simple-kmod.service
$ sudo systemctl status kmods-via-containers@simple-kmod.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
● kmods-via-containers@simple-kmod.service - Kmods Via Containers - simple-kmod Loaded: loaded (/etc/systemd/system/kmods-via-containers@.service; enabled; vendor preset: disabled) Active: active (exited) since Sun 2020-01-12 23:49:49 EST; 5s ago...
● kmods-via-containers@simple-kmod.service - Kmods Via Containers - simple-kmod Loaded: loaded (/etc/systemd/system/kmods-via-containers@.service; enabled; vendor preset: disabled) Active: active (exited) since Sun 2020-01-12 23:49:49 EST; 5s ago...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
커널 모듈이 로드되었는지 확인하려면
lsmod
명령을 사용하여 모듈을 나열하십시오.lsmod | grep simple_
$ lsmod | grep simple_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
simple_procfs_kmod 16384 0 simple_kmod 16384 0
simple_procfs_kmod 16384 0 simple_kmod 16384 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택사항. 다른 방법을 사용하여
simple-kmod
예제가 작동하는지 확인합니다.dmesg
를 사용하여 커널 링 버퍼에 "Hello world"메시지를 찾으십시오.dmesg | grep 'Hello world'
$ dmesg | grep 'Hello world'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
[ 6420.761332] Hello world from simple_kmod.
[ 6420.761332] Hello world from simple_kmod.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /proc
에서simple-procfs-kmod
의 값을 확인합니다.sudo cat /proc/simple-procfs-kmod
$ sudo cat /proc/simple-procfs-kmod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
simple-procfs-kmod number = 0
simple-procfs-kmod number = 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spkut
명령을 실행하여 모듈에 대한 자세한 정보를 가져옵니다.sudo spkut 44
$ sudo spkut 44
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
시스템이 부팅될 때 이 서비스는 새 커널이 실행 중인지를 확인합니다. 새 커널이 있으면 서비스는 새 버전의 커널 모듈을 빌드한 다음 로드합니다. 모듈이 이미 구축 된 경우 이를 로드합니다.