마운트(mount)

suyeon·2022년 11월 4일
0

사용자가 저장공간(파티션)에 접근하여 사용할 수 있도록 연결하는 과정으로 사용자가 접근할 수 있는 논리적 경로와 장치 파일을 연결합니다. 특정 장치를 하나의 디렉토리처럼 사용하기 위해 수행하는 작업이며 분산 파일 시스템으로 확장하기가 용이합니다.


  • 마운트 포인트(mount point)

시스템에서 파일시스템에 접근할 때 사용하는 경로로 디렉터리를 생성 후 마운트 포인트로 설정합니다.


Linux

#. 마운트 방식

  • 일회성 마운트
  1. 마운트 포인트 생성(마운트 포인트가 없는 경우 - 첫 마운트 시)
    mkdir MOUNT_POINT

  2. 마운트 연결 작업 수행
    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

다음은 실제 mount가 되었는지 파일 생성으로 확인해보는 과정입니다.
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 설정 파일에서 마운트 목록에 대해 마운트합니다.

  1. 마운트 포인트 생성(마운트 포인트가 없는 경우 - 첫 마운트 시)
    mkdir MOUNT_POINT

  2. /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


etc

#. backend.ai

  • 로컬 개발환경에서 vfolder 마운트하여 세션 생성하고, vfolder에서 file read/write 해보기

먼저 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" >> testcat 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--

0개의 댓글