반응형

1. 서버에 Disk 인식

확인방법

아래의 명령어로 추가한 Disk의 Device Charactor가 보여야 한다.

$ sudo fdisk -l

추가한 Disk가 안보일 경우

진행 불가, 인식이 안되는 상황으로 OS단의 Command로 진행이 어려움

가능한 원인

  • Raid Controller를 사용할 경우 Raid Controller에서 Virtual Disk로 Raid 설정 이후에 OS에서 Disk가 인식됨
  • Disk 자체가 Board에 연결이 안되었을 경우
  • Disk 비정상 동작 혹은 미동작 상태

2. 실제 사용 중인지 검토

확인 방법

mount가 되었는지 확인한다.
fdisk 명령에서 확인된 device가 보이지 않아야 한다.

$ df -h

3. mount 경로 생성

disk를 mount를 하게 된 논리 경로 주소 생성

$ sudo mkdir /data1

4. Partition 생성

2TB 이상일 경우 GPT(Guid Partition Table) 파티션을 사용해야 함. 여기서는 GPT 를 기준으로 진행함. 대상은 "sda"로 가정함.
순서대로 아래와 같이 입력함

Input

  • mklabel gpt # GPT label
  • Yes
  • unit TB # Set unit as TB
  • mkpart primary 0.00TB 3.5TB # make primary partition
  • print # print information

Example

$ sudo parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) unit TB
(parted) mkpart primary 0.00TB 3.5TB
(parted) print
Model: <Drive MODEL INFORMATION> (scsi)
Disk /dev/sda: 3.84TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      0.00TB  3.84TB  3.84TB               primary

(parted) quit
Information: You may need to update /etc/fstab.

위와 같이 진행 후에는 /dev/sda1 이 확인되어야 한다.

5. Disk 포멧

명령어

$ sudo mkfs.ext4 /dev/sda1

UUID 확인

$ sudo blkid

아래와 같이 UUID를 확인 가능하여야 한다.

/dev/sda1: UUID="XXXX-XXXX-XXXX-XXXX-......-XXXX" TYPE="ext4" PARTLABEL="primary" PARTUUID="YYYYYY-YYYY....YYYY"

6. fstab에 추가

$ sudo vi /etc/fstab

아래의 내용 추가

/dev/disk/by-uuid/XXXX-XXXX-XXXX-XXX-.....-XXXX /data1 ext4 default 0 0

7. mount

아래의 명령어로 mount all 시키면 fstab 정보 기반으로 모든 mount를 시도한다.
실패할 경우 오류 메시지가 나오는데 오타가 없는지 확인해본다.

$ sudo mount -a

disk가 정상적인지 확인해본다.

$ df -h

sda1을 참고하는 경로가 출력되어야 한다.

/dev/sda1       3.5T   45G  3.3T   2% /data1
반응형
반응형

Group 추가

 $ groupadd <Group Name>

Group 확인

 $ groups

Group에 User 추가

 $ gpasswd -a <User ID> <Group Name>

Group의 User 삭제

 $ gpasswd -d <User ID> <Group Name>/

Group 접근 권한 폴더에 추가

 $ chmod 775 <Folder> -R

Group 권한 추가

 $ chown <User ID>:<Group ID> <Folder> -R
반응형
반응형

Unknown runtime specified nvidia 오류

nvidia-driver를 재설치 하거나 처음 설치하고, docker를 runtime 옵션으로 nvidia 설정을 하는 경우 마주하는 경우가 있다.
이 오류는 아래와 같이 나타나기도 한다

docker: Error response from daemon: unknown or invalid runtime name: nvidia.

nvidia-docker2가 설치가 안되어 있을 가능성이 있으며, 설치되어 있지 않을 경우 설치해줄 경우 정상 동작하는 것이 확인된다.

nvidia-docker2 설치 확인

$ dpkg -l | grep nvidia-docker2

nvidia-docker2 설치

$ sudo apt install nvidia-docker2

nvidia gpg key와 저장소 추가

만약 nvidia-docker2를 못찾을 경우 저장소 추가

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

docker 재시작

$ sudo systemctl restart docker
반응형
반응형

전력 측정

$ sudo ipmitool dcmi power reading

Fan 속도 변경

현재 Fan Mode

$ sudo ipmitool raw 0x30 0x45 0

Fan Full Mode(100% RPM Speed)

$ sudo ipmitool raw 0x30 0x45 1 1

Fan Optimal Mode(20% RPM Speed)

$ sudo ipmitool raw 0x30 0x45 1 2

Fan HeavyIO Mode(50% RPM Speed)

$ sudo ipmitool raw 0x30 0x45 1 4

온도 측정

$ sudo ipmitool sdr type Temperature
반응형
반응형

IPMI Booting 후에 ipmitool을 이용하여 Network 및 User 설정하기

IPMI는 Booting시 BIOS 진입하여 IPMI Network 설정 이후 접속하여 사용함.

사용중인 서비스에서는 혹은 DataCenter에 이미 삽입되어 있는 서버에서는 그 작업은 여간 불편하거나 어려운게 아님

ipmitool을 이용하면 remote 상태에서 IPMI 설정이 가능함

 

ipmitool

설치

ipmitool 명령어가 없을 경우 apt로 간단히 설치해줌

$ sudo apt install ipmitool

지원 보드 확인 방법

보드 정보를 확인해서 구글링해서 보드 사양에 IPMI를 지원하는지 확인해본다

sudo dmidecode -s baseboard-product-name

IPMI Device 확인

/dev 밑에 ipmi 파일 확인

$ ll /dev/ | grep ipmi

 

Network

Network 정보 확인

$ sudo ipmitool lan print

Network 설정

Interface Static 설정(기본 DHCP로 되어있을 것임)

$ sudo ipmitool lan set 1 ipsrc static

Network IP 설정

$ sudo ipmitool lan set 1 ipaddr <IP ADDRSS>
$ sudo ipmitool lan set 1 netmask <NET MASK>
$ sudo ipmitool lan set 1 defgw ipaddr <DEFAULT GW IP ADDR>

 

User 설정

User를 추가해줘야 한다. 해당 User 계정으로 Terminal이든 Web이든 접속 가능하다

User List 확인

$ sudo ipmitool user list

User 추가

User ID는 User List에 비어있는 ID를 사용한다.

$ sudo ipmitool user set name <USER ID> <USER NAME>

User Password 설정

아래의 명령어 이후에 2번의 password를 입력해야 하는데, 보드별 허용 문법에 맞지 않을 경우 오류를 리턴한다.
될떄까지 할 수 밖에 없다. 영문+숫자+특수문자 조합은 먹히는 것 같다.

$ sudo ipmitool user set password <user id>

User 권한 추가

권한이 없으면, 접속이 불가능하다. 반드시 권한을 줘야 접속 권한으로 접속할 수 있다.

$ sudo ipmitool channel setaccess 1 <USER ID> link=on ipmi=on callin=on privilege=<PRIVILIGED LEVEL>

가능한 PRIVILEGE LEVEL은 아래와 같다.

    Possible privilege levels are:
   1   Callback level
   2   User level
   3   Operator level
   4   Administrator level
   5   OEM Proprietary level
  15   No access

 

설정 적용

아래의 명령어로 설정 적용 및 reset을 동작하지 않으면 설정한 설정들이 동작되지 않는다.
시간이 약간 걸리니 마음의 평안을 가지고 기다려보도록 하자.

$ sudo ipmitool bmc reset cold
반응형
반응형

 

https://github.com/ZhangGe6/onnx-modifier

 

GitHub - ZhangGe6/onnx-modifier: A tool to modify ONNX models in a visualization fashion, based on Netron and Flask.

A tool to modify ONNX models in a visualization fashion, based on Netron and Flask. - GitHub - ZhangGe6/onnx-modifier: A tool to modify ONNX models in a visualization fashion, based on Netron and F...

github.com

 

1. 설치

git clone git@github.com:ZhangGe6/onnx-modifier.git
cd onnx-modifier

pip install -r requirements.txt

2. 실행

python ./app.py

 

주의 사항

Web based며 실행 이후에는 Web Browser를 통해서 접근해야됨.
Default로 127.0.0.1:5000 을 사용하고 있으며, Loopback 주소이기 때문에, 해당 컴퓨터의 GUI를 사용해야 됨.

만약 서버에서 설치 후에 다른 컴퓨터에서 접근하고 싶을 경우 Eth에 할당된 다른 주소를 --host 옵션의 파라미터로 전달할 경우 접근 가능함

python3 ./app.py --host <<IP Address>> --port <<Port>>

혹은 해당 서버의 할당된 IP들에 대해서 사용하고 싶을 경우 0.0.0.0을 할당하면, 모든 Eth에 할당된 IP를 통해 서비스 가능함

python3 ./app.py --host 0.0.0.0 --port <<Port>>
반응형
반응형

 

Docker 설치 관련 내용은 생략함

 

1. TensorRT 버전 확인 

https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/running.html

 

::

About this task On a system with GPU support for NGC containers, when you run a container, the following occurs: The Docker engine loads the image into a container which runs the software. You define the runtime resources of the container by including the

docs.nvidia.com

Container Release Node에서 TensorRT Container의 각 Release 버전과 CUDA 버전, Ubuntu 버전 등의 자신의 필요로 하는 버전과 일치하는 버전을 확인한다.

 

2.  Docker Run

Docker run 명령어로 Image Download 및 shall 실행한다.

$ docker run --gpus <GPU> -it --name <NAME>  nvcr.io/nvidia/tensorrt:<Version>-<pyver> bash

예로 실행은 아래와 같다

$ docker run --gpus '"device=2"' -it -v /home/host/host_dir:/root/share_dir --name tensorrt_23.01_py3  nvcr.io/nvidia/tensorrt:23.01-py3 bash

 

3. Container 정상 동작 확인

-it 옵션으로 실행을 했기 때문에 바로 container 에 attach 및 shell이 실행된다
각 명령어로 정상 동작 하는지 확인한ㄷ,

$ nvidia-smi # GPU 연결 및 CUDA Driver 정상 동작 확인
$ pip list | grep tensorrt # Tensor rt 버전 확인

 

4. Docker containe

Docker run 명령어로 container는 이미 생성되었다. 아래의 명령어로 생성된 container를 확인한다.
아래의 명령어중 -a를 붙여야 현재 container의 status가 start 상태가 아니더라도 확인이 가능한다.

$ docker container ls -a # Container 전체 리스트

이후 다시 접속하기 위해서는 일반 docker container 와 같이 start/executing 을 통해 다시 접근 가능하다.

$ docker start <container name or hashnum>
$ docker exec -it <container name or hashnum> /bin/bash​
반응형
반응형
  • nvidia-smi 사용
$ nvidia-smi

  • nvcc 사용 
$ nvcc --version

 

"nvcc --version"의 버전과 "nvidia-smi"의 버전이 일치를 꼭 하는 것은 아님

  • "nvidia-smi"는 NVIDIA GPU Driver에 의해 설치가 되며 GPU Driver에 의한 버전이 표시됨
    "nvcc --version"은 CUDA Toolkit에의해 설치가 되며 CUDA Runtime Version이 표시가 됨
반응형
반응형

GSTShark 설치가 필요함

1. 관련 Package 설치

sudo apt install graphviz libgraphviz-dev
sudo apt install octave epstool babeltrace

2. GSTShark 설치

$ git clone https://github.com/RidgeRun/gst-shark/
$ cd gst-shark/
$ ./autogen.sh --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/
$ make
$ sudo make install

3. 테스트

GST_DEBUG="GST_TRACER:7" GST_TRACERS="proctime" \
	gst-launch-1.0 videotestsrc num-buffers=10000 ! \
	'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, framerate=(fraction)30/1' \
	! videorate max-rate=30 ! videoconvert ! queue ! avenc_h263p ! queue ! avimux ! fakesink

4. 로그 확인

0:00:01.994246894 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videoconvert0, time=(string)0:00:00.000032109;
0:00:01.994395874 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)avenc_h263p0, time=(string)0:00:00.000372912;
0:00:01.994401155 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)queue0, time=(string)0:00:00.000154431;
0:00:01.994401865 1151846 0x562427ae8850 TRACE             GST_TRACER :0:: proctime, element=(string)queue1, time=(string)0:00:00.000006357;
0:00:01.994594740 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)capsfilter0, time=(string)0:00:00.000000482;
0:00:01.994598173 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videorate0, time=(string)0:00:00.000003703;
0:00:01.994630612 1151846 0x562427ae88a0 TRACE             GST_TRACER :0:: proctime, element=(string)videoconvert0, time=(string)0:00:00.000032159;
0:00:01.994774671 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)avenc_h263p0, time=(string)0:00:00.000372839;
0:00:01.994779616 1151846 0x562427ae88f0 TRACE             GST_TRACER :0:: proctime, element=(string)queue0, time=(string)0:00:00.000149048;
0:00:01.994780333 1151846 0x562427ae8850 TRACE             GST_TRACER :0:: proctime, element=(string)queue1, time=(string)0:00:00.000006217;

5. Graphviz 이용

$ ./gstshark-plot gstshark_2022-05-30_19\:16\:42/ -s pdf
반응형
반응형

 

아래의 명령어로 로그 모니터링을 활성화 한 후에 DNS Request를 유도하면 로그가 출력되어 확인이 가능함

$ log stream --predicate 'process == "mDNSResponder"' --info

 

반응형

+ Recent posts