테스트 목적으로 파일에 RAID 어레이를 생성할 수 있습니까?
레벨 1 RAID를 생성하고 싶지만 이를 수행할 10개의 블록 장치가 없고 블록 장치 대신 파일을 사용하여 시뮬레이션하고 싶다고 가정해 보겠습니다.
지금까지 내가 한 일은 다음과 같습니다.
fallocate -l 1M disk1
fallocate -l 1M disk2
mkfs.ext4 disk1
mkfs.ext4 disk2
sudo mdadm --create --assume-clean --level=1 --raid-devices=2 /dev/md0 ./disk1 ./disk2
하지만 오류가 발생합니다.
mdadm: ./disk1 is not a block device.
어떤 아이디어가 있나요?
답변1
당신이 찾고 있는 것은 루프 장치라고 불립니다. 파일이 장치 /dev/loop0
등 으로 표시됩니다 . 그런 다음 파일 시스템으로 마운트할 수 있으며 md와 함께 사용해야 합니다. 매뉴얼 페이지에서 loop(4)
:
루프 장치는 데이터 블록을 하드 디스크나 광학 드라이브와 같은 물리적 장치가 아닌 파일 시스템의 일반 파일 블록이나 다른 블록 장치에 매핑하는 블록 장치입니다.
예를 들어 참조하십시오.
- https://man7.org/linux/man-pages/man4/loop.4.html
- https://man7.org/linux/man-pages/man8/losetup.8.html
LVM은 블록 장치가 필요한 항목을 테스트하는 데에도 유용할 수 있습니다. 단일 물리적 파티션에서 여러 논리 볼륨을 생성할 수 있으며(또는 그 반대), 볼륨 파괴/재생성/크기 조정도 디스크 파티셔닝보다 훨씬 간단합니다.
답변2
할 수 있어요. 파일에서 루프 장치를 만들고 해당 장치를 사용하여 배열을 만듭니다.
$ dd if=/dev/zero of=mydev count=80 bs=1M
$ sudo losetup -f mydev
블록 장치가 필요한 모든 환경에서 사용할 수 있는 80M 장치가 준비됩니다.
$ sudo losetup -l
현재 매핑을 알려드립니다.