사용자가 저장공간(파티션)에 접근하여 사용할 수 있도록 연결하는 과정으로 사용자가 접근할 수 있는 논리적 경로와 장치 파일을 연결합니다. 특정 장치를 하나의 디렉토리처럼 사용하기 위해 수행하는 작업이며 분산 파일 시스템으로 확장하기가 용이합니다.
시스템에서 파일시스템에 접근할 때 사용하는 경로로 디렉터리를 생성 후 마운트 포인트로 설정합니다.
마운트 포인트 생성(마운트 포인트가 없는 경우 - 첫 마운트 시)
mkdir MOUNT_POINT
마운트 연결 작업 수행
mount -t FS_TYPE PARTITION_DEVICE_FILE MOUNT_POINT
fdisk /dev/sdb # 파티션을 나눕니다
# 파티션한 하드디스크를 포맷합니다
# -t 옵션으로 파일시스템의 형식을 지정합니다
mkfs -t ext2 /dev/sdb1
mkdir /mnt/mydata1 # mount 포인트를 생성합니다
# mount 연결 후 확인합니다
mount -t ext2 /dev/sdb1 /mnt/mydata1
mount
# grep을 이용해 원하는 부분만 확인할 수 있습니다
mount | grep /dev/sdb1
cd /mnt/mydata1/
ls -l
touch userfile1
mkdir userdir1
echo "user write" > userfile1
cat userfile1
mkdir rootdir1
touch rootfile1
mount -t ext2 /dev/sdb1 /mnt/mydata1
mount
cd /mnt/mydata1/
ls -l
부팅 시 /etc/fsta
설정 파일에서 마운트 목록에 대해 마운트합니다.
마운트 포인트 생성(마운트 포인트가 없는 경우 - 첫 마운트 시)
mkdir MOUNT_POINT
/etc/fstab
설정 파일에 영구 마운트를 수행하기 위한 마운트 정보 추가
vim /etc/fstab
# 영구 마운트
vim /etc/fstab
mount | grep /mnt/mydata1 # 나옴
umount /dev/sdb1
mount | grep /mnt/mydata1 # 안 나옴
마운트 목록 확인: mount
마운트 연결 해제: umount DEVICE_FILE
or umount MOUNT_POINT
마운트 연결 해제 전 해당 디스크에 접근한 경우 해당 디스크 접근을 종료해야 합니다(cd 명령어로 작업 디렉터리를 다른 디렉터리로 이동, 디스크 내의 파일을 열고 있는 경우 해당 작업을 종료해야 함).
영구 마운트 연결 해제: /etc/fstab
설정 파일에서도 해당항목을 삭제하고 위의 마운트 연결 해제 명령어를 수행합니다.
vim /etc/fstab
(해당 항목의 행 삭제)
umount DEVICE_FILE
or umount MOUNT_POINT
먼저 vfolder를 생성합니다.
❯ ./backend.ai vfolder list-hosts
Default vfolder host: local:volume1
Usable hosts: local:volume1
❯ ./backend.ai vfolder create test local:volume1
Virtual folder "test" is created.
❯ ./backend.ai vfolder list
Host Name Created At Creator Group Permission Ownership Type
------------- ------ -------------------------------- ---------------- ------- ------------ ----------------
local:volume1 test 2022-08-07T03:21:52.801649+00:00 admin@lablup.com (null) rw user
`
--help
를 통해 세션을 생성할 때 필요한 옵션이 무엇이 있는지 확인합니다. vfolder를 마운트하여 세션을 생성할 때 필요한 옵션은 다음과 같습니다.
backend.ai session create [OPTIONS] IMAGE
-t, --name, --client-token NAME
Specify a human-readable session name. If
not set, a random hex string is used.
-v, -m, --volume, --mount NAME[=PATH]
User-owned virtual folder names to mount. If
path is not provided, virtual folder will be
mounted under /home/work. When the target
path is relative, it is placed under
/home/work with auto-created parent
directories if any. Absolute paths are
mounted as-is, but it is prohibited to
override the predefined Linux system
directories.
다음과 같이 세션을 생성합니다.
❯ ./backend.ai create -t session-test -v /home/work/test python
∙ Session ID d6da3f7e-a337-400b-8c1a-04311b46012c is enqueued for scheduling.
❯ ./backend.ai session list
Name Owner Access Key Session ID Project/Group Kernel ID Image Type Status Status Info Last Updated Result
------------ -------------------- ------------------------------------ --------------- ------------------------------------ ---------------------------------------------- ----------- -------- ------------- -------------- ---------
session-test AKIAIOSFODNN7EXAMPLE d6da3f7e-a337-400b-8c1a-04311b46012c default d6da3f7e-a337-400b-8c1a-04311b46012c cr.backend.ai/multiarch/python:3.9-ubuntu20.04 INTERACTIVE PENDING (null) (null) UNDEFINED
vfolder에서 파일을 읽고 씁니다.
❯ echo "hello world" >> test
❯ cat test
hello world
❯ ./backend.ai vfolder upload test ./test
Uploading /Users/suyeonpark/backend.ai/test via http://127.0.0.1:6021/upload ...
16.0Mbytes [00:00, 2.18Gbytes/s]
✔ Done.
❯ ./backend.ai vfolder ls test
✔ Retrived.
file name size modified mode
----------- ------ -------------------- ----------
test 12 Aug 07 2022 12:27:10 -rw-r--r--