Debian에서 사용할 VDO 컴파일

Debian에서 사용할 VDO 컴파일

데비안용 vdo 패키지를 찾을 수 없었고, 소프트웨어를 직접 컴파일하고 실행하려는 시도도 실패했습니다. vdo는 다른 회사를 인수한 후 RHEL에서 출시한 소프트웨어이기 때문에 데비안용 vdo를 컴파일하는 방법에 대해 알려줄 수 있는 사람이 있습니까?

내 현재 단계는 다음과 같습니다

apt-get update -y
apt-get install -y git sudo
sudo apt-get upgrade -y
sudo apt-get install -y build-essential libdevmapper-dev libz-dev uuid-dev
git clone https://github.com/dm-vdo/vdo.git
make
make install
sudo apt install -t stretch-backports linux-headers-$(uname -r)
git clone https://github.com/dm-vdo/kvdo.git
make -C /usr/src/linux-headers-`uname -r` M=`pwd`
cp vdo/kvdo.ko /lib/modules/$(uname -r)
cp uds/uds.ko /lib/modules/$(uname -r)
depmod
modprobe kvdo
modprobe uds
systemctl start vdo

// error with
Starting VDO volume services...
Traceback (most recent call last):
  File "/usr/bin/vdo", line 46, in <module>
    from vdo.utils import Command

답변1

OP의 질문이 불완전합니다. 오류 메시지 끝에는중요한 단서이 문제를 해결하는 것은 포함되지 않습니다. 이것은 (Debian Buster에 있습니다. Debian 9는 대신 검색합니다.파이썬3.5):

# vdo status
Traceback (most recent call last):
  File "/usr/local/bin/vdo", line 46, in <module>
    from vdo.utils import Command
  File "/usr/local/lib/python3.7/dist-packages/vdo/utils/__init__.py", line 27, in <module>
    from .YAMLObject import YAMLObject
  File "/usr/local/lib/python3.7/dist-packages/vdo/utils/YAMLObject.py", line 33, in <module>
    import yaml
ModuleNotFoundError: No module named 'yaml'

따라서 Python 코드에는 다음이 필요합니다.YAML기준 치수.

# apt-cache search python3 yaml | grep yaml | head -5
python3-pretty-yaml - module to produce pretty and readable YAML-serialized data (Python 3)
python3-xstatic-js-yaml - JavaScript yaml implementation - XStatic support
python3-xstatic-json2yaml - converts json or simple javascript objects into a yaml - XStatic support
python3-yamlordereddictloader - loader and dump for PyYAML keeping keys order
python3-yaml - YAML parser and emitter for Python3

# apt-get install python3-yaml

[...]

# vdo status
VDO status:
  Date: '2019-05-13 19:33:06+02:00'
  Node: somenode
Kernel module:
  Loaded: true
  Name: kvdo
  Version information:
    kvdo version: 6.2.0.293
Configuration:
  File: does not exist
  Last modified: not available
VDOs: {}

그게 다야. 구성하지 않으면 실제로 아무것도 시작되지 않습니다. Redhat에서 제공하는 지침을 따라야 합니다.1.5.VDO 볼륨 생성.

내가 실행한 예는 다음과 같습니다.

# vdo create --name=vdo-data --device=/dev/md0 --vdoLogicalSize=8T
Creating VDO vdo-data
Starting VDO vdo-data
Starting compression on VDO vdo-data
VDO instance 0 volume is ready at /dev/mapper/vdo-data

완전히 설치하지 않더라도 한 눈에 vdo.service충분한 정보를 얻을 수 있습니다.

ExecStart=/usr/bin/vdo start --all --confFile /etc/vdoconf.yml

그래서 수동으로:

# vdo start --all --confFile /etc/vdoconf.yml
Starting VDO vdo-data
VDO instance 0 volume is ready at /dev/mapper/vdo-data

# ps -ef|grep vdo
root     11590     2  0 19:53 ?        00:00:00 [kvdo0:dedupeQ]
root     11593     2  0 19:53 ?        00:00:00 [kvdo0:journalQ]
root     11594     2  0 19:53 ?        00:00:00 [kvdo0:packerQ]
root     11595     2  0 19:53 ?        00:00:00 [kvdo0:logQ0]

[...]

# vdo status
VDO status:
  Date: '2019-05-13 19:54:46+02:00'
  Node: somenode
Kernel module:
  Loaded: true
  Name: kvdo
  Version information:
    kvdo version: 6.2.0.293
Configuration:
  File: /etc/vdoconf.yml
  Last modified: '2019-05-13 19:53:35'
VDOs:
  vdo-data:
    Acknowledgement threads: 1
    Activate: enabled
    Bio rotation interval: 64
    Bio submission threads: 4
    Block map cache size: 128M
    Block map period: 16380
    Block size: 4096
    CPU-work threads: 2
    Compression: enabled
    Configured write policy: auto
    Deduplication: enabled
    Device mapper status: 0 17179869184 vdo /dev/md0 normal - online online 1151960 242161600
    Emulate 512 byte: disabled
    Hash zone threads: 1
    Index checkpoint frequency: 0

[...]

최종 참고 사항: 4.20 이상의 커널에서 이를 실행하려면 기본값에는 no가 필요합니다.가변 함수커널에서 kvdo를 변경해야 합니다. 가장 간단한 방법은 프로젝트 자체에서 영향을 받는 기능을 수정할 때까지 해당 경고를 무시하는 것입니다. 다른 RH 직원이 제공하는 2x2 행 패치 트리거기.

관련 정보