VINUM(8)

명칭
vinum - 논리 볼륨 매니저의 제어 프로그램

서식
vinum [command] [-options]

명령

attach plex volume [rename]

    attach subdisk plex [offset] [rename] 프렉스를 볼륨에, 또는 서브 디스크를 프렉스에 결합합니다.

    checkparity plex [-f] RAID-4 또는 RAID-5 의 프렉스의 패리티 블록을 검사합니다.

    concat [-f] [-n name] [-v] drives 지정한 드라이브로부터 콘카치네이트화 볼륨을 작성합니다.

    create [-f] description-file description-file 의 기술에 따라 볼륨을 작성합니다.

debug
    볼륨 매니저를 커널 디버거에 이행 시킵니다.

debug flags
    디버그 플래그를 설정합니다.

    detach [-f] [plex | subdisk] 결합되고 있던 볼륨이나 프렉스로부터, 프렉스나 서브 디스크를 분리합니다.

dumpconfig [drive ...]
    지정된 드라이브에 격납되고 있는 설정 정보를 표시합니다. 드라이브 네임을 지정하지 않으면 시스템의 전드라이브의 정보를 표시합니다.

    info [-v] [-V] 볼륨 매니저 상태를 표시합니다.

    init [-S size] [-w] plex | subdisk 서브 디스크 또는 프렉스의 전서브 디스크의 내용을 모두 0 에 초기화합니다.

label volume
    볼륨 레벨을 작성합니다.

    l | list [-r] [-s] [-v] [-V] [volume | plex | subdisk] 지정한 오브젝트의 정보를 표시합니다.

    ld [-r] [-s] [-v] [-V] [volume] 드라이브의 정보를 표시합니다.

    ls [-r] [-s] [-v] [-V] [subdisk] 서브 디스크의 정보를 표시합니다.

    lp [-r] [-s] [-v] [-V] [plex] 프렉스의 정보를 표시합니다.

    lv [-r] [-s] [-v] [-V] [volume] 볼륨의 정보를 표시합니다.

makedev
    /dev/vinum 에 디바이스 노드를 재작성합니다.

    mirror [-f] [-n name] [-s] [-v] drives 지정한 드라이브로부터 밀러화 볼륨을 작성합니다.

    move | mv -f drive object ... 지정한 드라이브에 오브젝트를 이동합니다.

printconfig [file]
    현재의 설정의 카피를 file 에 기입합니다.

quit
    대화 모드시에, vinum 유틸리티를 종료합니다. 통상 EOF 캐릭터를 입력하는 것으로써 실현될 수 있습니다.

read disk ...
    지정한 디스크로부터 vinum 의 설정을 읽어냅니다.

    rename [-r] [drive | subdisk | plex | volume] 지정한 오브젝트의 이름을 변경합니다.

    rebuildparity plex [-f] [-v] [-V] RAID-4 또는 RAID-5 의 프렉스의 패리티 블록을 재구축 합니다.

resetconfig
    모든 vinum 의 설정을 리셋트 합니다.

    resetstats [-r] [volume | plex | subdisk] 지정한 오브젝트의 통계 정보를 리셋트 합니다. 지정이 없는 경우는 모든 오브젝트가 대상입니다.

    rm [-f] [-r] volume | plex | subdisk 오브젝트를 삭제합니다.

saveconfig
    설정 실패 후에, vinum 의 설정을 디스크에 보존합니다.

setdaemon [value]
    demon의 설정을 줍니다.

    setstate state [volume | plex | subdisk | drive] 다른 오브젝트에 영향을 주지 않고 상태를 설정합니다. 진단 (을) 위해서만 사용합니다.

start
    전 vinum 드라이브로부터 설정을 읽어들입니다.

    start [-i interval] [-S size] [-w] volume | plex | subdisk 시스템이 오브젝트에 액세스 할 수 있도록(듯이) 합니다.

    stop [-f] [volume | plex | subdisk] 오브젝트에의 액세스를 종료시킵니다. 파라미터를 지정하지 않으면 vinum (을)를 정지시킵니다.

    stripe [-f] [-n name] [-v] drives 지정한 드라이브로부터 스트라이프화 볼륨을 작성합니다.

해설
vinum 유틸리티는, Vinum 논리 볼륨 매니저의 커널 컴퍼넌트와 통신합니다. 대화 형식과 단독의 명령을 실행하는 형식의 모두 실행 가능하게 되어 있습니다. 명령행 인수를 수반하지 않고 vinum (을)를 기동한다고 대화 형식이 되는 한편, 명령행으로 커멘드를 지정하면(자) 그 커멘드 만을 실행합니다. 대화 모드에서는, vinum (은)는 명령행 역사를 보관 유지합니다.

옵션
vinum 의 명령에는 옵션을 부가할 수가 있습니다. 어느 커멘드에도 아래와 같은 옵션의 어떤 것에서도 지정할 수가 있습니다만, 옵션이 무시되는 경우가 있습니다. 예를 들면, stop 명령은 -v 옵션과 -V 옵션을 무시합니다.

-f  -f (“force: 강제”) 옵션은 안전성의 확인을 무효로 합니다. 세심의 주위를 기울여 사용해 주세요. 이 옵션은 긴급시에게만 사용하는 것입니다. 예를 들면, 명령

        rm -f myvolume

    하 myvolume 하지만 오픈되고 있었다고 해도 삭제합니다. 이후, 이 볼륨에 액세스 하면(자), 거의 확실히 패닉을 일으킵니다.

-i millisecs
    init 또는 start 의 명령을 실행시, 각 블록의 카피동안에 millisecs 밀리 세컨드 기다립니다. 이것에 의해, 시스템 부하를 경감할 수 있습니다.

-n name
    볼륨명을 지정하기 위해서 -n 옵션을 사용합니다. 단순한 설정 명령 concat, mirror, stripe 용무입니다.

-r  -r (“recursive: 재귀적”) 옵션은 표시계의 명령로 사용해, 지시한 오브젝트 뿐만이 아니고, 하위의 오브젝트의 정보도 표시합니다. 예를 들면, lv 명령와 함께 사용되는 경우, -r 옵션은 대상의 볼륨에 속하는 프렉스와 서브 디스크의 정보도 표시합니다.

-s  -s (“statistics: 통계”) 옵션은 표시계의 명령로 통계 정보를 표시하기 위해서 사용합니다. mirror 명령도 이 옵션을 사용해, 스트라이프화 프렉스를 작성 해야 할것을 나타냅니다.

-S size
    -S 옵션은, init (와)과 start 명령을 위한 전송 사이즈를 지정합니다.

-v  -v (“verbose: 장황”) 옵션은, 한층 더 상세한 정보를 요구하기 위해서 사용합니다.

-V  -V (“Very verbose: 매우 장황”) 옵션은, -v 옵션이 제공하는 것보다 한층 더 상세한 정보를 요구하기 위해서 사용합니다. 이 플래그는 init 명령에서는 베리파이를 의미합니다.

-w  -w (“wait: 대기”) 옵션은, init (와)과 같이 통상은 백그라운드에서 실행하는 명령의 완료를, vinum 에 기다리게 합니다.

명령의 상세
vinum 명령은 이하의 기능을 실행합니다.

attach plex volume [rename]
    attach subdisk plex [offset] [rename] vinum attach (은)는 지정된 프렉스나 서브 디스크를 각각 볼륨이나 프렉스에 짜넣습니다. 서브 디스크에 대해서, 프렉스중의 시점 (오프셋(offset))을 지정할 수가 있습니다. 지정이 없는 경우, 서브 디스크는 유효한 최초의 위치에 결합됩니다. 하늘이 아닌 볼륨에 프렉스가 결합되면(자), vinum (은)는 그 프렉스를 재통합합니다.

    rename 키워드가 지정되면(자), vinum (은)는 오브젝트의 (프렉스의 경우에는 하위의 서브 디스크의) 이름을 변경해 디폴트의 vinum 명명 규칙에 맞춥니다. 오브젝트를 다른 이름으로 변경하려면 , rename 명령을 사용합니다.

    서브 디스크 결합에 즈음해서는, 몇개인가 고려 해야 할것이 있습니다:

    •   서브 디스크의 결합 대상은, 통상, 콘카치네이트화 프렉스만입니다.

    •   스트라이프화 프렉스 및 RAID-5 프렉스에 대해 서브 디스크가 없어졌을 경우 (예를 들면 드라이브의 고장 후 등), 해당 서브 디스크를 옮겨놓을 수 있는 것은 같은 크기의 서브 디스크 뿐입니다.

    •   스트라이프화 또는 RAID-5 의 프렉스에 더욱 서브 디스크를 추가하려면 , -f (강제) 옵션을 사용합니다. 프렉스내의 데이터를 파괴합니다.

    •   콘카치네이트화 프렉스에 대해서는, offset 파라미터가, 프렉스의 선두로부터의 블록 단위의 오프셋(offset)를 지정합니다. 스트라이프화 프렉스 및 RAID-5 프렉스에 대해서는, 본파라미터는, 서브 디스크의 최초의 블록의 오프셋(offset)를 지정합니다. 다른 표현을 한다면, 오프셋(offset)는, 서브 디스크의 수치 지정에 의한 위치와 스트라이프의 크기와의 적이 됩니다. 예를 들면, 블록의 크기가 271k 의 프렉스에서는, 최초의 서브 디스크는 오프셋(offset) 0 에, 2 번째의 오프셋(offset)는 271k 에, 3 번째는 542k 에, 등이 됩니다. 이 계산에서는, RAID-5 프렉스의 패리티 블록은 무시됩니다.

    checkparity plex [-f] [-v] 지정한 RAID-4 또는 RAID-5 프렉스의 패리티 블록을 체크합니다. 이 조작은 프렉스중의 포인터를 유지하기 때문에, 바란다면, 일시정지해 다음에 같은 장소로부터 재개 가능합니다. 게다가 이 포인터는 rebuildparity 명령도 사용합니다. 최초로 패리티의 문제가 검출된 개소로부터, 패리티 블록의 재구축을 개시 가능합니다.

    -f 플래그가 지정되면(자), checkparity (은)는 프렉스의 선두로부터 체크를 개시합니다. -v 플래그가 지정되면(자), checkparity (은)는 진척 보고를 표시합니다.

    concat [-f] [-n name] [-v] drives concat 명령은, 단일의 콘카치네이트화 프렉스로부터 되는 볼륨을 작성한다 create 명령의, 단순한 대체 수단입니다. 각 드라이브중의 최대의 연속 공간이, 프렉스의 서브 디스크 작성을 위해서(때문에) 사용됩니다.

    통상, concat 명령은 임의의 이름을 볼륨과 원가요소에 붙입니다. 이름은 텍스트 “vinum” 및 작은 정수로부터 되어, 예를 들면 “vinum3” 됩니다. 볼륨에 대해서 지정한 이름을 할당한다 -n name 옵션으로, 덧쓰기하는 것이 가능합니다. 프렉스와 서브 디스크의 이름은, 통상의 작법으로, 볼륨명으로부터 빼앗깁니다.

    드라이브의 이름에는 선택의 여지는 없습니다. 드라이브가 이미 vinum 드라이브로서 초기화되고 있었을 경우, 이름은 그대로 됩니다. 그렇지 않은 경우, 드라이브에는 텍스트 “vinumdrive” (와)과 작은 정수로부터 시작되는 이름이 주어져 예를 들면 “vinumdrive7” 됩니다. create 명령와 같이, -f 옵션을 사용해, 이전의 이름의 덧쓰기를 지정 가능합니다. -v 옵션은, 장황한 출력을 위해서(때문에) 사용합니다.

    이 명령의 예는, 후술의 단순한 설정 시에를 참조해 주세요.

    create [-f] description-file vinum create (은)는 어느 오브젝트의 작성에도 사용됩니다. 상호의 관련성이 비교적 복잡해 vinum 오브젝트의 작성에는 잠재적으로 위험이 있는 것을 고려해, 이 기능에는 대화적인 인터페이스는 없습니다. 파일명을 지정하지 않으면 vinum (은)는 일시파일에 대해서 에디터를 기동합니다. 환경 변수 EDITOR 하지만 설정되어 있는 경우, vinum (은)는 이 에디터를 기동합니다. 설정되어 있지 않은 경우의 디폴트는 vi 입니다. 자세한 것은 후술의 설정 파일 시에를 참조해 주세요.

    vinum create 기능은 가법적인 것으로 주의해 주세요: 여러 차례 실행하면(자), 이름 붙이고 하고 있지 않는 전오브젝트의 카피를, 복수 생성하게 됩니다.

    통상 create (은)는 기존의 vinum 드라이브의 이름을 변경하지 않습니다. 이것은, 잘못해 소거해 버리는 것을 피하기 (위해)때문입니다. 불필요한 vinum 드라이브를 파기하는 올바른 방법은, resetconfig 명령로 설정을 리셋트 하는 것입니다. 그러나, 기동할 수 없다 vinum 드라이브상에 신규 데이터를 생성할 필요가 있는 경우가 있습니다. 이 경우, create -f (을)를 사용해 주세요.

debug
    인수 없음의 vinum debug (은)는, 중계차 네루 디버거에 들어가기 위해서(때문에) 사용합니다. 이것은 vinum 하지만 VINUMDEBUG 옵션 첨부로 작성되고 있는 경우에게만 실행 가능합니다. 이 옵션은 커널 디버거로부터 빠져 나올 때까지 오퍼레이팅(operating) 시스템의 실행을 정지시킵니다. 리모트 디버그가 설정되어 있어 커널 디버거에의 리모트 connection가 없으면 디버거로부터 빠져 나오기 위해서(때문에)는 시스템을 리셋트 해 리부트 하는 것이 필요하게 됩니다.

debug flags
    내부 디버그 플래그의 비트 마스크를 설정합니다. 본제품이 개량되는 것에 따라, 이 비트 마스크는 경고 없이 로 변경되겠지요. 확인을 위해서(때문에), 헤더 파일 <sys/dev/vinumvar.h> (을)를 봐 주세요. 비트 마스크는 다음의 값으로부터 구성됩니다:

    DEBUG_ADDRESSES (1)
        리퀘스트중의 버퍼 정보를 표시합니다.

    DEBUG_RESID (4)
        complete_rqe() 에 두어 디버거로 이행합니다.

    DEBUG_LASTREQS (8)
        최신의 리퀘스트의 링 버퍼를 보존합니다.

    DEBUG_REVIVECONFLICT (16)
        재생에 있어서의 충돌에 관한 정보를 표시합니다.

    DEBUG_EOFINFO (32)
        스트라이프프렉스로 EOF (을)를 돌려줄 때, 내부 상태의 정보를 표시합니다.

    DEBUG_MEMFREE (64)
        마지막에 메모 리어 locator가 해방한 메모리 area에 관한 순환 리스트를 관리합니다.

    DEBUG_REMOTEGDB (256)
        debug 명령이 발행되었을 때에, 리모트 gdb (으)로 이행합니다.

    DEBUG_WARNINGS (512)
        실장내의 밀러의 문제에 관한 경고를 표시합니다.

    detach [-f] plex
    detach [-f] subdisk vinum detach (은)는 지정된 프렉스나 서브 디스크를, 결합되고 있는 볼륨이나 프렉스로부터 분리합니다. 분리하면(자) 볼륨의 데이터가 빠질 가능성이 있다 경우, 이 조작은 -f 옵션을 지정하지 않는 한 실행되지 않습니다. 오브젝트가 상위의 오브젝트에 따른 이름이 되어 있는 경우 (예를 들면, 프렉스 vol1.p7 에 결합되고 있는 서브 디스크 vol1.p7.s0 의 경우), 그 이름은 머리에 “ex-” 하지만 붙은 것으로 변경됩니다 (예를 들면 ex-vol1.p7.s0 (으)로 변경됩니다). 그 후의 처리로 필요하면, 그 이름으로부터 머리의 부분이 떼어집니다.

    스트라이프화 프렉스 및 RAID-5 프렉스에 대해서는, detach (은)는 서브 디스크수를 줄이지 않습니다. 그 대신해, 서브 디스크에는 존재하지 않는다고 하는 표를 붙일 수 있어 다음에 attach 명령을 사용해 교환 가능해집니다.

dumpconfig [drive ...]
    vinum dumpconfig (은)는, 지정된 드라이브상에 보관된 설정 정보를 표시합니다. 드라이브 네임이 지정되어 있지 않은 경우, dumpconfig (은)는 시스템상에 있는 모든 드라이브로부터 vinum 파티션을 찾아내, 그 정보를 덤프 합니다. 설정의 갱신을 무효로 하고 있는 경우, 이 명령이 돌려주는 정보와 list 명령이 돌려주는 정보가 같게 안 되는 것이 있습니다. 이 커멘드는, 주로 메인트넌스 및 디버그용으로 사용되는 것입니다.

info
    vinum info 하 vinum 의 메모리 사용에 관한 정보를 표시합니다. 이것은 주로 디버그를 위한 물건입니다. -v 옵션을 붙이면(자), 사용중의 메모리 area에 대한 상세한 정보를 표시합니다.

    -V 옵션을 붙이면(자), vinum 드라이버가 취급한 최대 64 개까지의 최근의 I/O 리퀘스트에 관한 정보를, info (은)는 표시합니다. 이 정보는, 디버그 플래그 8 이 설정되어 있을 때 마셔 수집됩니다. 서식은 다음과 같이 됩니다:

        vinum -> info -V
        Flags: 0x200    1 opens
        Total of 38 blocks malloced, total memory: 16460
        Maximum allocs:       56, malloc table at 0xf0f72dbc
        Time             Event       Buf        Dev     Offset          Bytes   SD      SDoff   Doffset Goffset
        14:40:00. 637758 1VS Write 0xf2361f40    91.3  0x10            16384
        14:40:00. 639280 2LR Write 0xf2361f40    91.3  0x10            16384
        14:40:00. 639294 3RQ Read  0xf2361f40    4.39   0x104109        8192    19      0       0       0
        14:40:00. 639455 3RQ Read  0xf2361f40    4.23   0xd2109         8192    17      0       0       0
        14:40:00. 639529 3RQ Read  0xf2361f40    4.15   0x6e109         8192    16      0       0       0
        14:40:00. 652978 4DN Read  0xf2361f40    4.39   0x104109        8192    19      0       0       0
        14:40:00. 667040 4DN Read  0xf2361f40    4.15   0x6e109         8192    16      0       0       0
        14:40:00. 668556 4DN Read  0xf2361f40    4.23   0xd2109         8192    17      0       0       0
        14:40:00. 669777 6RP Write 0xf2361f40    4.39   0x104109        8192    19      0       0       0
        14:40:00. 685547 4DN Write 0xf2361f40    4.39   0x104109        8192    19      0       0       0
        11:11:14. 975184 Lock      0xc2374210    2      0x1f8001
        11:11:15. 018400 7VS Write 0xc2374210           0x7c0           32768   10
        11:11:15. 018456 8LR Write 0xc2374210    13.39  0xcc0c9         32768
        11:11:15. 046229 Unlock    0xc2374210    2      0x1f8001

    Buf 필드는, 유저 버퍼 헤더의 주소를 항상 포함합니다. 유저 리퀘스트에 관련지을 수 있는 리퀘스트 (복수가능)를 식별하기 위해서 사용할 수 있습니다만,100% 신뢰할 수 있는 것이라고 하는 것은 아닙니다: 이론적으로는, 순차 순서중의 2 개의 리퀘스트가 같은 버퍼 헤더를 사용할 수 있습니다만, 이것은 일반적이지는 않습니다. 리퀘스트의 선두는, 이벤트 1VS 또는 7VS 그리고 식별 가능합니다. 전술의 1 번째의 예는, user requirements에 관련하는 리퀘스트를 나타내고 있습니다. 2 번째는, 락을 수반하는 서브 디스크 I/O 리퀘스트입니다. 앞에서 본 예에서는, 복수의 리퀘스트가 단일의 유저 리퀘스트에 포함되어 있습니다.

    Event 필드는, 리퀘스트 체인중의 이벤트 순차 순서에 관련하는 정보를 포함합니다. 1 (으)로부터 6 까지의 숫자는 이벤트의 대범한 순차 순서를 나타내, 2 캐릭터의 생략형은 위치의 니모닉크입니다.

    1VS (vinum 의 strategy) vinumstrategy() 의 입구에 있는, 유저 리퀘스트에 관한 정보를 표시합니다. 디바이스 번호는 vinum 디바이스이며, 오프셋(offset)와 길이는 유저 파라미터입니다. 본니모닉크는, 항상 리퀘스트 순차 순서의 선두가 됩니다.

    2LR (리퀘스트 발행) 함수 launch_requests() 에 두어 저레벨 vinum 리퀘스트를 발행하기 직전의, 유저 리퀘스트를 표시합니다. 파라미터는 1VS 의 정보와 같은은 두입니다.

    여기에서 후의 리퀘스트에서는, 이용 가능한 경우, Dev (은)는 관련지을 수 있었던 디스크 패티션의 디바이스 번호이며, Offset (은)는 파티션의 선두로부터의 오프셋(offset)이며, SD 하 vinum_conf 안의 서브 디스크 인덱스이며. SDoff (은)는 서브 디스크의 선두로부터의 오프셋(offset)이며, Doffset (은)는 관련지을 수 있었던 데이터 리퀘스트의 오프셋(offset)이며, Goffset (은)는 관련지을 수 있었던 그룹 리퀘스트의 오프셋(offset)입니다.

    3RQ (리퀘스트) 고레벨의 리퀘스트를 채우기 위해서(때문에) 발행되는, 몇개인가 있을 수 있는 저레벨 vinum 리퀘스트 중 하나를 표시합니다. 이 정보는, launch_requests() 냄새나도 기록됩니다.

    4DN (완료) complete_rqe() (으)로부터 불려 리퀘스트의 완료를 표시합니다. 이 완료는, 스테이지 4DN 에 두어 launch_requests() (으)로부터 발행된 리퀘스트인가, 또는 스테이지 5RD 인가 6RP 의 complete_raid5_write() (으)로부터 발행된 리퀘스트에 매치 할 것입니다.

    5RD (RAID-5 데이터) complete_raid5_write() (으)로부터 불려 패리티 계산 후에 RAID-5 데이터 스트라이프에 기입해진 데이터를 표현합니다.

    6RP (RAID-5 패리티) complete_raid5_write() (으)로부터 불려 패리티 계산 후에 RAID-5 패리티 스트라이프에 기입해진 데이터를 표현합니다.

    7VS 서브 디스크 I/O 리퀘스트를 표시합니다. 통상, 이러한 리퀘스트는 vinum 내부의 것이며, 프렉스의 초기화나 재구축이라고 하는 조작에 사용합니다.

    8LR 서브 디스크 I/O 리퀘스트를 위해서(때문에) 생성한, 저레벨 조작을 표시합니다.

    Lockwait
        프로세스가 레인지 락을 기다리고 있는 것을 나타냅니다. 파라미터는, 리퀘스트에 관련지을 수 있었던 버퍼 헤더와 프렉스 번호와 블록 번호입니다. 내부적인 이유로, 블록 번호는, 스트라이프 개시 주소보다 1 개 커지고 있습니다.

    Lock
        레인지 락을 취득이 끝난 상태인 것을 나타냅니다. 파라미터는 레인지 락과 같습니다.

    Unlock
        레인지 락을 해방이 끝난 상태인 것을 나타냅니다. 파라미터는 레인지 락과 같습니다.

    init [-S size] [-w] plex | subdisk vinum init (은)는 지정한 서브 디스크에 0 을 기입해 초기화합니다. 프렉스가 지정되었을 경우는 프렉스내의 전서브 디스크를 초기화할 수 있습니다. 이것은 프렉스중의 데이터에 모순이 없는 것을 확실히 하는 유일한 방법입니다. RAID-5 프렉스의 사용전에는, 이 초기화가 필요합니다. 다른 신규 프렉스에 대해서도, 이 초기화를 추천 합니다. vinum (은)는 프렉스중의 모든 서브 디스크를 병행해 초기화합니다. 이 조작에는 긴 시간이 걸리기 (위해)때문에, 통상 백그라운드에서 실행됩니다. 이 명령의 완료를 기다리고 싶은 경우, -w (대기) 옵션을 사용해 주세요.

    -S 옵션으로 기본값의 16 kB 와 다른 사이즈의 기입 블록을 지정할 수 있습니다. vinum (은)는 초기화가 완료하면(자) 콘솔 메세지를 출력합니다.

label volume
    label 명령은, 볼륨에 ufs 형식의 볼륨 레벨을 기입합니다. 이것은 적절히 disklabel (을)를 호출하는 것에 대한, 단순한 대체 방법입니다. 몇개의 ufs 명령은 label를 입수하기 위해서 정규의 ioctl(2) 콜을 사용하지 않고, 여전히 label를 찾아 디스크의 읽기를 실시한다 모아 두어 이 명령은 필요하게 됩니다. vinum (은)는 볼륨의 데이터와는 별도로 볼륨 레벨을 보관 유지하고 있기 (위해)때문에, 이 명령은 newfs(8) 용으로는 필요 없습니다. 이 명령의 가치는 저하하고 있습니다.

    list [-r] [-V] [volume | plex | subdisk]
    l [-r] [-V] [volume | plex | subdisk]
    ld [-r] [-s] [-v] [-V] [volume]
    ls [-r] [-s] [-v] [-V] [subdisk]
    lp [-r] [-s] [-v] [-V] [plex]
    lv [-r] [-s] [-v] [-V] [volume] list (은)는 지정한 오브젝트의 정보를 표시하기 위해서 사용됩니다. 인수가 생략 되면(자) vinum 하지만 인식하고 있는 모든 오브젝트에 대한 정보가 표시됩니다. l 명령은 list (와)과 같은 것입니다.

    -r 옵션은 볼륨과 프렉스에 관련합니다. 지정되면(자), 그 오브젝트 하위의 서브 디스크와 (볼륨에 대해서는) 프렉스의 정보를 재귀적으로 표시합니다. lv, lp, ls, ld 의 명령은, 각각 볼륨, 프렉스, 서브 디스크, 그리고 드라이브의 정보만을 표시합니다. 이것은 파라미터를 지정하지 않고 사용하는 경우에 특히 유용합니다.

    -s 옵션으로 vinum (은)는 장치의 통계 정보를 출력하게 되어, -v (verbose: 요설인) 옵션은 얼마인가의 부가 정보를 출력시켜, 그리고 -V (은)는 수많은 부가 정보를 출력시킵니다.

makedev
    makedev 명령은, 디렉토리 /dev/vinum (을)를 제거한 다음, 현재의 설정을 반영하는 것 같은 디바이스 노드와 함께 이 디렉토리를 재작성합니다. 본명령은, 통상의 경우에 사용되는 것을 의도하고 있지 않습니다. 비상시에게만 사용하기 위해서 제공하고 있습니다.

    mirror [-f] [-n name] [-s] [-v] drives mirror 명령은, 밀러화 볼륨을 작성한다 create 명령의, 단순한 대체 수단입니다. 옵션을 지정하지 않으면 RAID-1 (밀러화) 볼륨을, 2 개의 콘카치네이트화 볼륨으로 작성합니다. 각 드라이브중의 최대의 연속 공간이, 프렉스의 서브 디스크 작성을 위해서(때문에) 사용됩니다. 1 번째의 프렉스는, 리스트의 홀수 번호의 드라이브로부터 구축되어 2 번째의 프렉스는, 리스트의 짝수 번호의 드라이브로부터 구축됩니다. 드라이브의 크기가 다른 경우, 프렉스의 크기는 다르겠지요.

    -s 옵션을 지정하면(자), mirror (은)는 스트라이프의 크기가 279 kB 의 스트라이프화 프렉스를 구축합니다. 각 프렉스의 서브 디스크의 크기는, 프렉스를 구성하는 드라이브 중(안)에서, 최소의 연속 스토리지의 크기입니다. 여기에서도 또, 프렉스의 크기는 다를지도 모릅니다.

    통상, mirror 명령은 임의의 이름을 볼륨과 원가요소에 붙입니다. 이름은 텍스트 “vinum” 및 작은 정수로부터 되어, 예를 들면 “vinum3” 됩니다. 볼륨에 대해서 지정한 이름을 할당한다 -n name 옵션으로, 덧쓰기하는 것이 가능합니다. 프렉스와 서브 디스크의 이름은, 통상의 작법으로, 볼륨명으로부터 빼앗깁니다.

    드라이브의 이름에는 선택의 여지는 없습니다. 드라이브가 이미 vinum 드라이브로서 초기화되고 있었을 경우, 이름은 그대로 됩니다. 그렇지 않은 경우, 드라이브에는 텍스트 “vinumdrive” (와)과 작은 정수로부터 시작되는 이름이 주어져 예를 들면 “vinumdrive7” 됩니다. create 명령와 같이, -f 옵션을 사용해, 이전의 이름의 덧쓰기를 지정 가능합니다. -v 옵션은, 장황한 출력을 위해서(때문에) 사용합니다.

    이 명령의 예는, 후술의 단순한 설정 시에를 참조해 주세요.

mv -f drive object ...
move -f drive object ...
    지정한 오브젝트로부터 새로운 드라이브에 모든 서브 디스크를 이동합니다. 오브젝트는, 서브 디스크, 드라이브 혹은 프렉스입니다. 드라이브 또는 프렉스가 지정되었을 경우, 오브젝트에 관계하는 모든 서브 디스크가 이동됩니다.

    이 기능은 현재 서브 디스크중의 데이터를 보존하지 않기 때문에 -f 옵션이 필요합니다. 이 부가 기능은, 후일 추가됩니다. 그렇지만, 이 상태에서도, 고장났다 디스크 드라이버를 복구시키는데는 충분합니다.

printconfig [file]
    현재의 설정의 카피를, vinum 설정을 재생성 가능한 서식에서, file 에 기입합니다. 디스크상에 보존된 설정과는 달라, 드라이브의 정의를 포함합니다. file (을)를 지정하지 않으면 vinum (은)는 일람을 stdout 에 기입합니다.

quit
    대화 모드로 실행중 때에, vinum 유틸리티를 종료합니다. 통상은, 캐릭터 EOF (을)를 입력하는 것으로 실현될 수 있습니다.

read disk ...
    read 명령은, 지정한 디스크를 주사 해, 작성제의 설정 정보를 포함한다 vinum 파티션을 찾습니다. 그리고, 최근 갱신된 것으로부터 과거에 갱신된 것의 차례로, 설정을 읽어들입니다. vinum 유틸리티는, 최신의 모든 설정 정보를 각 디스크 패티션 으로 유지하고 있습니다. 이 명령의 파라미터로서 설정안의 전슬라이스를 지정할 필요가 있습니다.

    read 명령은, 다른 vinum 파티션을 가지는 시스템상에서, vinum 설정을 선택적으로 로드하는 것을 의도하고 있습니다. 시스템상의 전파티션을 기동하고 싶은 경우, start 명령을 사용하는 (분)편이 간단합니다.

    본명령 실행시에 vinum 하지만 에러가 되면(자), 디스크상의 카피가 망가지지 않게 하기 위한(해), 자동적인 설정 갱신을 무효로 합니다. 이것은, 디스크상의 설정이, 설정 에러를 나타낸다 (예를 들면, 유효한 공간 지정을 가지지 않는 서브 디스크) 경우에도 같습니다. 재차 갱신을 온으로 하려면 , setdaemon (와)과 saveconfig 의 명령을 사용해 주세요. demon 옵션 마스크의 비트 2 를 리셋트 해, 설정 보존을 재차 유효하게 해 주세요.

    rebuildparity plex [-f] [-v] [-V] 지정한 RAID-4 또는 RAID-5 프렉스의 패리티 블록을 재구축 합니다. 이 조작은 프렉스중의 포인터를 유지하기 때문에, 바란다면, 일시정지해 다음에 같은 장소로부터 재개 가능합니다. 게다가 이 포인터는 checkparity 명령도 사용합니다. 최초로 패리티의 문제가 검출된 개소로부터, 패리티 블록의 재구축을 개시 가능합니다.

    -f 플래그가 지정되면(자), rebuildparity (은)는 프렉스의 선두로부터 재구축을 개시합니다. -v 플래그가 지정되면(자), rebuildparity (은)는 우선 기존의 패리티 블록을 체크해, 재구축전에, 부정합정보를 표시합니다. -V 플래그가 지정되면(자), rebuildparity (은)는 진척 보고를 표시합니다.

    rename [-r] [drive | subdisk | plex | volume] newname 지정한 오브젝트의 이름을 변경합니다. -r 옵션이 지정되면(자), 하위의 오브젝트가 디폴트의 규칙에 따라 명명되고. pnumber (을)를 부가해 만들어져 서브 디스크의 이름은 프렉스명에. snumber (을)를 부가해 만들어집니다.

resetconfig
    resetconfig 명령은 시스템내의 vinum 설정을 완전하게 삭제합니다. 설정을 완전하게 소거하고 싶은 경우에만 사용해 주세요. vinum (은)는 확인을 요구합니다. NO FUTURE (전도 없음)(이)라고 하는 어구를 이하와 같게 입력할 필요가 있습니다.

        # vinum resetconfig
        WARNING!   This command will completely wipe out your vinum
        configuration.   All data will be lost.   If you really want
        to do this, enter the text
        NO FUTURE
        Enter text -> NO FUTURE
        Vinum configuration obliterated
        (역주: 여기로부터 상기 텍스트의 번역입니다)
        경고!  이 명령은 당신의 vinum 설정을 완전하게 지워 없앱니다.
        전데이터는 없어집니다. 정말로 이것을 실행하고 싶은 경우는, 어구
        NO FUTURE
        (을)를 입력해 주세요.
        입력해 주세요 -> NO FUTURE
        vinum 의 설정은 삭제되었습니다.
        (역주: 여기까지 상기 텍스트의 번역입니다)

    메세지가 가리키도록(듯이), 응장의 명령입니다. 기존의 설정을 이제 보고 싶은 것도 아닐 때 이외는, 이 명령을 사용하지 말아 주세요.

    resetstats [-r] [volume | plex | subdisk] vinum (은)는 각 오브젝트에 대해 다수의 통계 카운터를 보관 유지하고 있습니다. 자세한 것은 헤더 파일 <sys/dev/vinumvar.h> (을)를 참조해 주세요. 이러한 카운터를 리셋트 하기 위해서는 resetstats 명령을 사용해 주세요. -r 옵션도 모두 지정하면(자), vinum (은)는 하위의 오브젝트의 카운터도 리셋트 합니다.

    rm [-f] [-r] volume | plex | subdisk rm (은)는 오브젝트를 vinum 설정으로부터 소거합니다. 한번 오브젝트가 소거되면(자) 그것을 복구하는 방법은 없습니다. 통상 vinum (은)는 오브젝트를 소거하기 전에 수많은 일관성 확인을 실시합니다. -f 옵션을 지정하면(자), vinum (은)는 이 확인을 생략 해, 오브젝트를 무조건 소거합니다. 이 옵션은 세심의 주위를 기울여 사용해 주세요. 볼륨상의 모든 데이터를 잃는 일도 있습니다.

    통상, vinum (은)는 하위에 프렉스를 가지는 볼륨이나, 하위에 서브 디스크를 가지는 프렉스를 소거하는 것을 거부합니다. -f 플래그를 지정하면(자), vinum (은)는 무조건 오브젝트를 소거합니다. 또는 -r (recursive: 재귀적) 플래그를 사용하는 것으로, 똑같이 하위의 오브젝트를 소거할 수가 있습니다. -r 플래그를 붙여 볼륨을 소거하면(자), 프렉스와 거기에 속하는 서브 디스크도 소거합니다.

saveconfig
    현재의 설정을 디스크에 보존합니다. vinum (은)는 자동적으로 설정 변경을 보존하므로, 통상 이것은 불필요합니다. 기동시에 에러가 발생했을 경우, 갱신은 무효화됩니다. setdaemon 명령로 재차 유효화해도, vinum (은)는 설정을 자동적으로는 디스크에 보존하지 않습니다. 이 명령을 사용해 설정을 보존해 주세요.

setdaemon [value]
    setdaemon 하 vinum demon의 변수 비트 마스크를 설정합니다. 본명령은 일시적인 것이며, 장래 옮겨놓을 수 있습니다. 현재, 비트 마스크에는 비트 1 (전액션을 syslog 에 기록한다)으로 비트 4 (설정을 갱신하지 않는다)가 있습니다. 옵션 비트 4 는 에러 회복시에 유용할지도 모릅니다.

    setstate state [volume | plex | subdisk | drive] setstate (은)는, 지정한 오브젝트 상태를 지정한 상태로 설정합니다. vinum 의 통상의 일관성 기구는 우회도로 됩니다. 회복의 목적에서만 사용해야 합니다. 이 명령을 잘못해 사용하면(자), 시스템을 파괴할 가능성이 있습니다.

    start [-S size] [-w] [plex | subdisk] start (은)는 1 개(살) 또는 그 이상의 vinum 오브젝트를 기동합니다 ( up 상태에 이행 시킵니다).

    오브젝트명을 지정하지 않으면 시스템이 vinum 드라이브이라고 알고 있는 디스크를, vinum (은)는 주사 합니다. 그 후, read 명령의 곳에 써 있도록(듯이), 설정을 읽어들입니다. vinum 드라이브에는 그 드라이브중의 데이터에 대한 모든 정보를 가지는 헤더가 들어가 있어 그 정보로서는 프렉스와 볼륨을 표현하기 위해서 필요한 다른 드라이브의 이름을 포함하고 있습니다.

    본명령 실행시에 vinum 하지만 에러가 되면(자), 디스크상의 카피가 망가지지 않게 하기 위한(해), 자동적인 설정 갱신을 무효로 합니다. 이것은, 디스크상의 설정이, 설정 에러를 나타낸다 (예를 들면, 유효한 공간 지정을 가지지 않는 서브 디스크) 경우에도 같습니다. 재차 갱신을 온으로 하려면 , setdaemon (와)과 saveconfig 의 명령을 사용해 주세요. demon 옵션 마스크의 비트 4 를 리셋트 해, 설정 보존을 재차 유효하게 해 주세요.

    오브젝트명이 지정되면(자), vinum (은)는 그것들을 기동합니다. 통상, 이 조작은 서브 디스크 에 대해서만 실시합니다. 동작은 오브젝트의 현재 상태에 의존합니다:

    •   오브젝트가 이미 up 상태의 경우, vinum (은)는 아무것도 하지 않습니다.

    •   오브젝트가 서브 디스크이며, down 또는 reborn 상태의 경우, vinum 하 up 상태로 변경합니다.

    •   오브젝트가 서브 디스크이며, empty 상태의 경우, 변경은 서브 디스크에 의존합니다. 서브 디스크가 프렉스의 일부이며 이 프렉스가 다른 프렉스를 포함한 볼륨의 일부인 경우, vinum (은)는 서브 디스크를 reviving 상태로 해, 데이터를 볼륨으로부터 카피하려고 합니다. 조작 완료시에, 서브 디스크는 up 상태로 설정됩니다. 서브 디스크가 프렉스의 일부이며 이 프렉스가 다른 프렉스를 포함하지 않는 볼륨의 일부인 경우, 또는 서브 디스크가 프렉스의 일부에서는 없는 경우, vinum (은)는 즉시에 서브 디스크를 up 상태로 합니다.

    •   오브젝트가 서브 디스크이며, reviving 상태인 경우, vinum 하 재생 조작을 오프 라인에서 계속합니다. 조작 완료시에, 서브 디스크는 up 상태로 설정됩니다.

    서브 디스크가 up 상태가 되면(자), vinum (은)는 자동적으로, 서브 디스크가 속할 가능성이 있는 프렉스와 볼륨 상태를 체크해, 이러한 상태를 적절히 갱신합니다.

    오브젝트가 프렉스의 경우, start (은)는 하위의 서브 디스크 (볼륨의 경우에는 이것에 가세해 프렉스 ) 상태를 체크해, 기동 가능한 서브 디스크를 기동합니다.

    멀티플렉스 볼륨안의 1 개의 프렉스를 기동하려면 , 볼륨중의 다른 프렉스로부터 데이터를 카피할 필요가 있습니다. 이것에는 자주 긴 시간이 걸리기 (위해)때문에, 백그라운드에서 실행됩니다. 이 조작이 완료하는 것을 기다리고 싶은 경우 (예를 들면, 이 조작을 스크립트중에서 실행하고 있는 경우), -w 옵션을 사용해 주세요.

    데이터의 카피에는 별로 시간이 걸리지 않습니다. 그것은, 한층 더 중대한 부하를 시스템에 걸칠 수 있습니다. -S 옵션으로 전송 사이즈를, -i 옵션으로 각 블록을 전송 하는 간격을 (밀리 세컨드로) 지정 가능합니다. 어느쪽이나 시스템 부하를 경감합니다.

    stop [-f] [volume | plex | subdisk] 파라미터를 지정하지 않으면 stop 하 vinum kld 를 삭제해, vinum(4) (을)를 정지합니다. 활동 상태의 오브젝트가 존재하지 않는 경우만, 실시하는 것이 가능합니다. 특히, -f 옵션은 이 요구에 우선하지 않습니다. 통상, stop 명령은, 종료전에 현재의 설정을 디스크에 써 되돌립니다. 설정의 갱신이 무효가 되어 있는 경우에는 이것은 할 수 없기 때문에, 설정의 갱신이 무효가 되어 있는 경우에는 vinum (은)는 정지하지 않습니다. 이것을 덧쓰기하려면 -f 옵션을 지정합니다.

    stop 명령은 vinum 하지만 kld 로서 로드 되고 있는 경우만 동작합니다. 정적으로 구성된 드라이버를 언로드할 수 없기 때문입니다. vinum 하지만 정적으로 구성되어 있는 경우, vinum stop (은)는 실패합니다.

    오브젝트명이 지정되면(자), stop (은)는 그 오브젝트에의 액세스를 무효화합니다. 오브젝트에 하위 오브젝트가 있는 경우, 그러한 서브 오브젝트는 이미 비활동 상태 (stop 또 error)가 되고 있는지, -r (와)과 -f 의 옵션이 지정되어 있는 것이 필요합니다. 이 명령은, 오브젝트를 설정으로부터 없애지 않습니다. start 명령의 다음에 재차 액세스가 생기게 됩니다.

    디폴트에서는 vinum (은)는 동작중의 오브젝트는 정지하지 않습니다. 예를 들면, 동작중의 볼륨에 결합 되고 있는 프렉스는 정지할 수 없고, 오픈중의 볼륨은 정지할 수 없습니다. -f 옵션은 vinum 에 이 확인을 생략 해 무조건 삭제하도록 지시합니다. 이 옵션은 많이 주의해, 잘 이해한 다음 사용해 주세요. 만약 잘못해 사용하면(자) 심하다 데이터 파괴를 일으키는 일이 있습니다.

    stripe [-f] [-n name] [-v] drives stripe 명령은, 단일의 스트라이프화 프렉스로부터 되는 볼륨을 작성한다 create 명령의, 단순한 대체 수단입니다. 서브 디스크의 크기는, 전드라이브로 이용 가능한 최대의 연속 공간의 크기입니다. 스트라이프의 크기는 279 kB 에 고정되고 있습니다.

    통상, stripe 명령은 임의의 이름을 볼륨과 원가요소에 붙입니다. 이름은 텍스트 “vinum” 및 작은 정수로부터 되어, 예를 들면 “vinum3” 됩니다. 볼륨에 대해서 지정한 이름을 할당한다 -n name 옵션으로, 덧쓰기하는 것이 가능합니다. 프렉스와 서브 디스크의 이름은, 통상의 작법으로, 볼륨명으로부터 빼앗깁니다.

    드라이브의 이름에는 선택의 여지는 없습니다. 드라이브가 이미 vinum 드라이브로서 초기화되고 있었을 경우, 이름은 그대로 됩니다. 그렇지 않은 경우, 드라이브에는 텍스트 “vinumdrive” (와)과 작은 정수로부터 시작되는 이름이 주어져 예를 들면 “vinumdrive7” 됩니다. create 명령와 같이, -f 옵션을 사용해, 이전의 이름의 덧쓰기를 지정 가능합니다. -v 옵션은, 장황한 출력을 위해서(때문에) 사용합니다.

    이 명령의 예는, 후술의 단순한 설정 시에를 참조해 주세요.

단순한 설정
이 마디에서는, concat, mirror, stripe 명령을 사용하는, vinum 설정의 단순한 인터페이스를 설명합니다. 이러한 명령은, 대개의 통상 상황에서는 편리한 설정을 작성합니다만, create 명령정도의 유연성은 없습니다.

명령의 해설은 전술을 참조해 주세요. 여기에서는 예를 나타냅니다. 모두 같은 디스크를 사용하고 있습니다. 최초의 드라이브 /dev/da1h (은)는 다른 드라이브보다 작은 것에 주의해 주세요. 각 서브 디스크의 크기에 영향이 있습니다.

다음에 나타내는 예에서는 모두 -v 옵션을 사용하는 것으로써, 시스템에 건네주는 명령을 보여 줘 볼륨의 구조를 열거합니다. -v 옵션을 사용하지 않으면 이러한 명령은 아무것도 출력하지 않습니다.

  단일 콘카치네이트화 프렉스의 볼륨
단일 콘카치네이트화 프렉스의 볼륨을 사용해, 최대의 스토리지 용량을 얻습니다. 다만, 드라이브 고장에의 내성은 없습니다.

    vinum -> concat -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
    volume vinum0
      plex name vinum0.p0 org concat
    drive vinumdrive0 device /dev/da1h
        sd name vinum0.p0.s0 drive vinumdrive0 size 0
    drive vinumdrive1 device /dev/da2h
        sd name vinum0.p0.s1 drive vinumdrive1 size 0
    drive vinumdrive2 device /dev/da3h
        sd name vinum0.p0.s2 drive vinumdrive2 size 0
    drive vinumdrive3 device /dev/da4h
        sd name vinum0.p0.s3 drive vinumdrive3 size 0
    V vinum0                State: up       Plexes:       1 Size:       2134 MB
    P vinum0.p0           C State: up       Subdisks:     4 Size:       2134 MB
    S vinum0.p0.s0          State: up       D: vinumdrive0  Size:        414 MB
    S vinum0.p0.s1          State: up       D: vinumdrive1  Size:        573 MB
    S vinum0.p0.s2          State: up       D: vinumdrive2  Size:        573 MB
    S vinum0.p0.s3          State: up       D: vinumdrive3  Size:        573 MB

이 경우, 4 디스크 모든 공간을 사용해, 볼륨의 크기는 2134 MB 가 됩니다.

  단일 스트라이프화 프렉스의 볼륨
단일 스트라이프화 프렉스의 볼륨은 콘카치네이트화 프렉스보다 성능이 좋을지도 모릅니다. 그러나, 스트라이프화 프렉스의 제약에 의해, 볼륨은 작을지도 모릅니다. 이것도 또 드라이브 고장의 내성은 없습니다.

    vinum -> stripe -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
    drive vinumdrive0 device /dev/da1h
    drive vinumdrive1 device /dev/da2h
    drive vinumdrive2 device /dev/da3h
    drive vinumdrive3 device /dev/da4h
    volume vinum0
      plex name vinum0.p0 org striped 279k
        sd name vinum0.p0.s0 drive vinumdrive0 size 849825b
        sd name vinum0.p0.s1 drive vinumdrive1 size 849825b
        sd name vinum0.p0.s2 drive vinumdrive2 size 849825b
        sd name vinum0.p0.s3 drive vinumdrive3 size 849825b
    V vinum0                State: up       Plexes:       1 Size:       1659 MB
    P vinum0.p0           S State: up       Subdisks:     4 Size:       1659 MB
    S vinum0.p0.s0          State: up       D: vinumdrive0  Size:        414 MB
    S vinum0.p0.s1          State: up       D: vinumdrive1  Size:        414 MB
    S vinum0.p0.s2          State: up       D: vinumdrive2  Size:        414 MB
    S vinum0.p0.s3          State: up       D: vinumdrive3  Size:        414 MB

이 경우, 서브 디스크의 크기는 이용할 수 있는 디스크의 최소에 제한되어 볼륨의 크기는 1659 MB 가 됩니다.

  2 개의 콘카치네이트화 프렉스의 밀러화 볼륨
신뢰성을 향상하기 위해(때문에), 밀러화 및 볼륨화를 사용합니다:

    vinum -> mirror -v -n mirror /dev/da1h /dev/da2h /dev/da3h /dev/da4h
    drive vinumdrive0 device /dev/da1h
    drive vinumdrive1 device /dev/da2h
    drive vinumdrive2 device /dev/da3h
    drive vinumdrive3 device /dev/da4h
    volume mirror setupstate
      plex name mirror.p0 org concat
        sd name mirror.p0.s0 drive vinumdrive0 size 0b
        sd name mirror.p0.s1 drive vinumdrive2 size 0b
      plex name mirror.p1 org concat
        sd name mirror.p1.s0 drive vinumdrive1 size 0b
        sd name mirror.p1.s1 drive vinumdrive3 size 0b
    V mirror                State: up       Plexes:       2 Size:       1146 MB
    P mirror.p0           C State: up       Subdisks:     2 Size:        988 MB
    P mirror.p1           C State: up       Subdisks:     2 Size:       1146 MB
    S vinum0.p0.s0          State: up       D: vinumdrive0  Size:        414 MB
    S vinum0.p0.s2          State: up       D: vinumdrive2  Size:        414 MB
    S vinum0.p0.s1          State: up       D: vinumdrive1  Size:        414 MB
    S vinum0.p0.s3          State: up       D: vinumdrive3  Size:        414 MB

이 예에서는 볼륨명을 mirror (와)과 지정해 있습니다. 1 개의 드라이브의 크기가 다른 드라이브보다 작기 때문에, 2 개의 프렉스의 크기는 달라, 볼륨의 마지막 158 MB 에는 내성이 없습니다. 이러한 상황으로 완전한 신뢰성을 프로텍션하기 위해서는, create 명령을 사용해 988 MB 의 볼륨을 작성합니다.

  2 개의 스트라이프화 프렉스의 밀러화 볼륨
이번은, 2 개의 스트라이프화 프렉스의 밀러화 볼륨을 작성하기 위해서 -s 옵션을 사용합니다:

    vinum -> mirror -v -n raid10 -s /dev/da1h /dev/da2h /dev/da3h /dev/da4h
    drive vinumdrive0 device /dev/da1h
    drive vinumdrive1 device /dev/da2h
    drive vinumdrive2 device /dev/da3h
    drive vinumdrive3 device /dev/da4h
    volume raid10 setupstate
      plex name raid10.p0 org striped 279k
        sd name raid10.p0.s0 drive vinumdrive0 size 849825b
        sd name raid10.p0.s1 drive vinumdrive2 size 849825b
      plex name raid10.p1 org striped 279k
        sd name raid10.p1.s0 drive vinumdrive1 size 1173665b
        sd name raid10.p1.s1 drive vinumdrive3 size 1173665b
    V raid10                State: up       Plexes:       2 Size:       1146 MB
    P raid10.p0           S State: up       Subdisks:     2 Size:        829 MB
    P raid10.p1           S State: up       Subdisks:     2 Size:       1146 MB
    S raid10.p0.s0          State: up       PO:        0  B Size:        414 MB
    S raid10.p0.s1          State: up       PO:      279 kB Size:        414 MB
    S raid10.p1.s0          State: up       PO:        0  B Size:        573 MB
    S raid10.p1.s1          State: up       PO:      279 kB Size:        573 MB

이 경우, 사용 가능한 볼륨은 보다 작아집니다. 왜냐하면, 최소의 드라이브에 적합하도록(듯이), 제 1 프렉스가 작아졌기 때문입니다.

설정 파일
vinum 유틸리티에서는, create 명령에 건네주는 모든 인수는 설정 파일에 들어가 있을 필요가 있습니다. 설정 파일의 엔트리는, 볼륨이나 프렉스나 서브 디스크를 정의합니다. 엔트리는 1 행에 1 개라고 하는 것 이외로는 정해진 서식은 없습니다.

  스케일 팩터
이러한 값은, 바이트로 지정해도 좋으며, 다음의 스케일 팩터의 어느쪽이든 1 개(살)을 후에 붙여도 좋습니다:

s   값이 512 바이트의 섹터수인 것을 나타냅니다.

k   값이 킬로바이트수인 것을 나타냅니다 (1024 바이트).

m   값이 메가바이트수인 것을 나타냅니다 (1048576 바이트).

g   값이 기가바이트수인 것을 나타냅니다 (1073741824 바이트).

b   VERITAS (와)과의 호환성을 위해서(때문에) 사용합니다. 이것은, 512 바이트의 블록수를 의미합니다. “블록” 그렇다고 하는 말을 다른 의미로 사용하고 있기 때문에, 이 단축형은 혼란시키는 것입니다. 이 단축형의 가치는 저하하고 있습니다. 대표해에 키워드 's'를 사용해 주세요.

예를 들면, 16777216 바이트라고 하는 값은, 16m, 16384k, 32768s 의 어느 표기도 가능합니다.

설정 파일에는 이하의 엔트리를 기술할 수가 있습니다.

drive name devicename [options]
    드라이브를 정의합니다. 옵션은 다음과 같습니다:

    device devicename
        드라이브가 타는 디바이스를 지정합니다. devicename (은)는, 예를 들면 /dev/da1e (이)나 /dev/ad3s2h 그렇다고 하는 파티션일 필요가 있어, 타입 vinum 일 필요가 있습니다. “c” 파티션을 사용해 되지 않습니다. 이것은 디스크 전체를 위해서(때문에) 예약되고 있기 때문입니다.

    hotspare
        드라이브를 “핫 스페어” 드라이브이다고 정의합니다. 이것은, 고장난 드라이브와 자동적으로 교환하기 위해서 관리됩니다. vinum 유틸리티는 이 드라이브를 다른 용도에 사용하는 것을 허락하지 않습니다. 특히, 서브 디스크를 이 위에 작성할 수 없습니다. 이 기능은 아직 완전하게는 실장되고 있지 않습니다.

volume name [options]
    name (이)라는 이름으로 볼륨을 정의합니다. 옵션에는 다음의 것이 있습니다.

    plex plexname
        지정한 프렉스를 볼륨에 추가합니다. plexname 하지만 * (으)로서 지정되면(자), vinum (은)는 설정 파일중의 볼륨 정의의 후에, 다음의 타당한 엔트리가 될 수 있는 프렉스 의 정의를 찾습니다.

    readpol policy
        볼륨의 read policy (읽기 방침)(을)를 정의합니다. policy 하 round 인가 prefer plexname 의 어느 쪽인지입니다. vinum 유틸리티는 읽어들여 요구를, 다만 1 개의 프렉스에 의해 채웁니다. round 읽기 방침은, 읽기를 다른 프렉스로부터 라운드로빈 방식에서 실시하도록(듯이) 지정합니다. prefer 읽기 방침으로는, 지정한 프렉스로부터 매회 읽기를 실시합니다.

    setupstate
        멀티플렉스 볼륨을 작성할 때에, 모든 프렉스의 내용에 일관성이 있으면(자) 가정합니다. 통상 이렇게 될 것은 없기 때문에, 디폴트에서는, 최초의 프렉스를 제외한 모든 프렉스를 faulty 상태로 설정합니다. start 명령을 사용해, 최초로 일관성이 있는 상태로 할 필요가 있습니다. 그러나 스트라이프화 프렉스와 콘카치네이트화 프렉스의 경우에는, 보통은 일관성이 없는 채에서도 문제로는 되지 않습니다. 볼륨을 파일 시스템이나 스왚 파티션으로서 사용하는 경우에는 디스크상의 이전의 내용은 아무래도 좋기 때문에, 그것은 무시됩니다. 이 위험을 받아들이는 경우에는, setupstate 키워드를 사용해 주세요. 설정 파일중에서 볼륨의 직후에 정의되는 프렉스 에 대해서만 적용됩니다. 다음에 프렉스를 볼륨에 추가하는 경우에는, 이러한 프렉스를 start 명령로 통합할 필요가 있습니다.

        RAID-5 프렉스에는 init (을)를 사용하는 것이 필요 일로 주의해 주세요. 그렇지 않으면 1 개의 서브 디스크에 장해가 일어났을 때, 크게 데이터가 파괴됩니다.

plex [options]
    프렉스를 정의합니다. 볼륨과는 달라, 이름의 지정은 불필요합니다. 옵션에는 다음의 것을 지정 가능합니다:

    name plexname
        프렉스의 이름을 지정합니다. 프렉스나 서브 디스크에 이름을 붙이는 경우에는 name 키워드가 필요하게 되는 것에 주의해 주세요.

    org organization [stripesize]
        프렉스의 편성을 지정합니다. organization 하 concat 인가 striped 인가 raid5 의 머지않아인가입니다. striped (와)과 raid5 의 프렉스에 대해서는 stripesize 인수를 지정할 필요가 있습니다만, concat 의 프렉스에 대해서는 생략 할 필요가 있습니다. striped 타입에 대해서는 각 스트라이프의 폭을 지정합니다. raid5 에 대해서는, 그룹의 크기를 지정합니다. 그룹과는 프렉스의 일부분이며, 같은 서브 디스크에 들어가 있는 모든 데이터의 패리티가 들어가 있습니다. 그것은 프렉스의 크기의 약수일 필요가 있어 (즉, 프렉스의 크기를 스트라이프의 크기로 나눈 것은 정수일 필요가 있어), 디스크 섹터장 (512바이트)의 배수일 필요가 있습니다.

        최적인 성능을 위해서(때문에)는, 스트라이프의 크기는 적어도 128kB 여야 합니다. 이것보다 작게 하면(자), 개개의 리퀘스트가 복수의 디스크에 대해서 할당할 수 있는 것으로, I/O 의 액티버티가 매우 증가합니다. 본매핑에 의한 병행 전송수증가에 기인하는 성능 향상은, 지연시간 증가에 기인하는 성능 열화를 일으키지 않습니다. 스트라이프의 크기의 기준은, 256 kB 에서 512 kB 의 사이입니다. 2 의 멱승은 피해야 합니다. 2 의 멱승을 사용하면(자), 모든 슈퍼 블록을 최초의 서브 디스크에 두는 경향이 있기 때문입니다. 단순한 명령에서는, 스트라이프의 크기에 279 kB 를 사용하기 위해(때문에), 슈퍼 블록이 적당히 분산됩니다.

        스트라이프화 프렉스는 최저 2 개의 서브 디스크를 가질 필요가 있고 (그렇지 않으면 콘카치네이트화 프렉스가 됩니다), 각각은 같은 크기일 필요가 있습니다. RAID-5 프렉스는 최저 3 개의 서브 디스크를 가질 필요가 있어, 각각은 같은 크기일 필요가 있습니다. 실제로는 RAID-5 프렉스는 최저 5 개의 서브 디스크로부터 구성되어야 합니다.

    volume volname
        프렉스를, 지정한 볼륨에 추가합니다. volume 키워드가 지정되지 않으면 프렉스는 설정 파일중의 마지막에 기술되었다 볼륨에 추가됩니다.

    sd sdname offset
        지정한 서브 디스크를 프렉스의 offset 의 위치에 추가합니다.

subdisk [options]
    서브 디스크를 정의합니다. 옵션에는 다음의 것을 지정 가능합니다:

    name name
        서브 디스크의 이름을 지정합니다. 이것은 반드시 지정할 필요는 없습니다. 상기의 오브젝트의 명명 (을)를 참조해 주세요. 서브 디스크에 이름을 붙이는 경우에는 name 키워드를 지정할 필요가 있는 것에 주의해 주세요.

    plexoffset offset
        프렉스내의 서브 디스크의 시점을 지정합니다. 지정이 없으면 vinum (은)는 벌써 서브 디스크가 있으면 그 직후의 area를 할당하지 않으면 프렉스의 선두로부터 할당합니다.

    driveoffset offset
        드라이브내의 서브 디스크의 시점을 지정합니다. 지정이 없으면 vinum (은)는 드라이브중에서 최초의 length 바이트 연속의 빈area를 할당합니다.

    length length
        서브 디스크의 크기를 지정합니다. 이 키워드는 필수입니다. 기본값은 없습니다. 값 0 을 지정하면(자), “드라이브상에서 최대한 이용 가능한 연속 빈area를 사용” 그렇다고 하는 의미가 됩니다. 드라이브가 하늘의 경우, 서브 디스크로서 드라이브 전체를 사용하는 것을 의미합니다. length 하 len (와)과 단축할 수도 있습니다.

    plex plex
        서브 디스크가 속하는 프렉스를 지정합니다. 디폴트에서는, 서브 디스크는 마지막에 기술된 프렉스에 속합니다.

    drive drive
        서브 디스크가 타는 드라이브를 지정합니다. 디폴트에서는 마지막에 기술되었다 드라이브상에 위치합니다.

    retryerrors
        회복 불능 에러가 발생해도, 서브 디스크가 다운으로 간주하지 않게 지정합니다. 통상, vinum (은)는, 회복 불능 에러가 발생하면(자), 서브 디스크 전체를 액세스 불능으로 합니다.

설정 파일예

    # vinum 설정 파일예
    #
    # 드라이브
    drive drive1 device /dev/da1h
    drive drive2 device /dev/da2h
    drive drive3 device /dev/da3h
    drive drive4 device /dev/da4h
    drive drive5 device /dev/da5h
    drive drive6 device /dev/da6h
    # 1 개의 스트라이프화 프렉스를 가지는 볼륨
    volume tinyvol
     plex org striped 279k
      sd length 64m drive drive2
      sd length 64m drive drive4
    volume stripe
     plex org striped 279k
      sd length 512m drive drive2
      sd length 512m drive drive4
    # 2 개의 프렉스
    volume concat
     plex org concat
      sd length 100m drive drive2
      sd length 50m drive drive4
     plex org concat
      sd length 150m drive drive4
    # 1 개의 스트라이프화 프렉스와 1 개의 콘카치네이트화 프렉스를 가지는 볼륨
    volume strcon
     plex org striped 279k
      sd length 100m drive drive2
      sd length 100m drive drive4
     plex org concat
      sd length 150m drive drive2
      sd length 50m drive drive4
    # 1 개의 RAID-5 프렉스와 1 개의 스트라이프화 프렉스를 가지는 볼륨
    # RAID-5 볼륨이 1 개의 서브 디스크분만큼 큰 것에 주의
    volume vol5
     plex org striped 491k
      sd length 1000m drive drive2
      sd length 1000m drive drive4
     plex org raid5 273k
      sd length 500m drive drive1
      sd length 500m drive drive2
      sd length 500m drive drive3
      sd length 500m drive drive4
      sd length 500m drive drive5

드라이브 레이아웃상의 고려점
현재, vinum 드라이브는 BSD 디스크 패티션입니다. 그것은 다른 용도로 사용되고 있는 데이터의 덧쓰기를 피하기 위해서(때문에) vinum 타입일 필요가 있습니다. disklabel -e (을)를 사용해, 파티션 타입 정의를 편집해 주세요. 다음의 표시는, disklabel(8) 하지만 가리키는 전형적인 파티션 레이아웃입니다:

    8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      a:    81920   344064    4.2BSD        0     0     0   # (Cyl.   240*- 297*)
      b:   262144    81920      swap                        # (Cyl.    57*- 240*)
      c:  4226725        0    unused        0     0         # (Cyl.     0 - 2955*)
      e:    81920        0    4.2BSD        0     0     0   # (Cyl.     0 - 57*)
      f:  1900000   425984    4.2BSD        0     0     0   # (Cyl.   297*- 1626*)
      g:  1900741  2325984     vinum        0     0     0   # (Cyl.  1626*- 2955*)

이 예에서는, 파티션 “g” (을)를 vinum 파티션으로서 사용 가능합니다. 파티션 “a”, “e”, “f” (은)는, UFS 파일 시스템 또는 ccd 파티션으로서 사용 가능합니다. 파티션 “b” (은)는 스왚 파티션이며, 파티션 “c” (은)는 디스크 전체를 표현하기 위해(때문에) 다른 용도에 사용할 수 없습니다.

vinum 유틸리티는 각 파티션의 선두로부터 265 섹터를 설정 정보에 사용하기 위해(때문에), 서브 디스크의 최대의 크기는 드라이브보다 265 섹터 작아집니다.

로그 파일
vinum 유틸리티는 로그 파일을 관리합니다. 로그 파일은, 디폴트에서는 /var/log/vinum_history (이어)여, vinum 에 대해서 발행한 명령의 히스토리를 보관 유지합니다. 환경 변수 VINUM_HISTORY (을)를 파일의 이름으로 설정하는 것으로써, 이 파일의 이름을 오바라이드 가능합니다.

로그 파일중의 메세지의 전에는 일자가 붙습니다. 디폴트의 서식은 "%e %b %Y %H:%M:%S" 입니다. 서식의 캐릭터 라인에 관한 새로운 상세한 것에 대하여는 strftime(3) (을)를 참조해 주세요. 이것은 환경 변수 VINUM_DATEFORMAT 그리고 오바라이드 가능합니다.

VINUM 설정법
본절에서는, vinum 시스템의 실장 방법에 관한, 현실적인 어드바이스를 실시합니다.

  데이터를 어디에 둘까
우선 결정이 필요한 선택은, 데이터를 어디에 둘까입니다. vinum 전용의 디스크 패티션이 필요합니다. 이것들은, 디바이스나 파티션 “c” (이)가 아니고, 파티션이어야 합니다. 예를 들면, 적절한 이름이란, /dev/da0e (이)나 /dev/ad3s4a 입니다. 부적절한 이름이란, 파티션은 아니고 디바이스를 표현한다 /dev/da0, /dev/da0s1 (이)나, 디스크 전체를 표현해 타입 unused (이어)여야 한다 /dev/ad1c 입니다. 전술의, 드라이브 레이아웃상의 고찰점 아래에 있는 사용예를 참조해 주세요.

  볼륨의 디자인
vinum 볼륨의 설정 방법법은, 당신의 의도에 의존합니다. 다음과 같이 많은 가능성이 있습니다:

1.  많은 작은 디스크를 결합해, 적절한 크기의 파일 시스템을 작성하고 싶다고 생각할지도 모릅니다. 예를 들면, 작은 디스크를 5 개 가지고 있어, 전공간을 단일 볼륨으로서 사용하고 싶은 경우, 다음과 같은 설정 파일을 씁니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        drive d3 device /dev/da4e
        drive d4 device /dev/da5e
        drive d5 device /dev/da6e
        volume bigger
         plex org concat
           sd length 0 drive d1
           sd length 0 drive d2
           sd length 0 drive d3
           sd length 0 drive d4
           sd length 0 drive d5

    이 경우, 서브 디스크의 길이를 0 으로 지정합니다. 이것은, “드라이브상에 있는 빈공간 가운데, 최대 area를 사용한다” 일을 의미합니다. 지정하는 서브 디스크가, 드라이브상의 유일한 서브 디스크인 경우, 이 서브 디스크는 사용 가능한 공간 전체를 사용합니다.

2.  디스크 고장에 대한 추가의 회복력 (레지리엔스; resilience)을 vinum 에게 주고 싶은 경우를 생각합니다. 선택사항으로서는, “미러링” (이)라고도 불리는 RAID-1 인가, “패리티” (이)라고도 불리는 RAID-5 가 있습니다.

    미러링의 설정을 위해서(때문에)는, 단일 볼륨안에 복수의 프렉스를 작성할 필요가 있습니다. 예를 들면, 2 GB 의 밀러화 볼륨을 작성하려면 , 다음과 같은 설정 파일을 작성합니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        volume mirror
         plex org concat
           sd length 2g drive d1
         plex org concat
           sd length 2g drive d2

    밀러화 드라이브를 작성할 경우에는, 각 프렉스로부터의 데이터가, 다른 물리 디스크상에 있는 것을 프로텍션하는 것이 중요합니다. 이것에 의해, 단일 드라이브 고장에 대해도, vinum (은)는 볼륨의 완전한 address 공간에 액세스 가능해집니다. 각 프렉스가, 완전한 볼륨과 동일한 데이터를 필요로 하는 것에 주의해 주세요: 이 예에서는, 볼륨은 2 GB 의 크기입니다만, 각 프렉스 (와 각 서브 디스크) (은)는 2 GB 를 필요로 하기 때문에, 전체의 디스크 스토리지 요구는 4 GB 가 됩니다.

    RAID-5 의 설정을 하려면 , 타입 raid5 의 단일 프렉스를 작성합니다. 예를 들면, 회복력을 가지는 2 GB 에 상당하는 볼륨을 작성하려면 , 다음과 같은 설정 파일을 사용합니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        drive d3 device /dev/da4e
        drive d4 device /dev/da5e
        drive d5 device /dev/da6e
        volume raid
         plex org raid5 433k
           sd length 512m drive d1
           sd length 512m drive d2
           sd length 512m drive d3
           sd length 512m drive d4
           sd length 512m drive d5

    RAID-5 프렉스는, 최저 3 개의 서브 디스크를 필요로 합니다. 이러한 중 1 개에는, 패리티 정보를 격납하므로, 데이터 스토리지로서는 사용하지 않습니다. 보다 많은 디스크를 사용하면(자), 보다 많은 비율의 디스크 스토리지를, 데이터 스토리지로서 사용 가능해집니다. 이 예에서는, 총스토리지 사용량은 2.5 GB 입니다. 이것에 대해, 밀러 설정에서의 총스토리지 사용량은 4 GB 입니다. 최소의 3 개의 디스크만을 사용하는 경우, 정보 격납을 위해서(때문에) 다음과 같이 3 GB 를 필요로 합니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        drive d3 device /dev/da4e
        volume raid
         plex org raid5 433k
           sd length 1g drive d1
           sd length 1g drive d2
           sd length 1g drive d3

    밀러화 드라이브를 작성할 경우에는, 각 서브 디스크로부터의 데이터가, 다른 물리 디스크상에 있는 것을 프로텍션하는 것이 중요합니다. 이것에 의해, 단일 드라이브 고장에 대해도, vinum (은)는 볼륨의 완전한 address 공간에 액세스 가능해집니다.

3.  또, vinum 의 설정에 의해, 파일 시스템에의 액세스의 병행성을 더하고 싶다고 생각할지도 모릅니다. 많은 경우, 단일의 파일 시스템에의 액세스는, 디스크 속도에 의해 제한됩니다. 볼륨을 복수의 디스크에 분산하는 것으로써, 복수 액세스 환경에서의 throughput를 늘리는 것이 가능합니다. 이 기술은, 단일 액세스 환경에서는, 거의 효과가 없는가 전혀 효과가 없습니다. vinum 유틸리티는 “스트라이핑” 또는 RAID-0 라고도 불리는 기술을 사용해, 액세스의 병행성을 더합니다. RAID-0 라고 하는 명칭은 오해를 일으키게 하는 것입니다: 왜냐하면, 스트라이핑은 장황성도 한층 더 신뢰성도 제공하지 않기 때문입니다. 실제, 신뢰성은 저하합니다. 왜냐하면, 단일 디스크의 고장은 볼륨을 사용 불가로 해, 많은 디스크를 사용하는 만큼 이러한 중 1 개가 고장나는 확률은 증가하기 때문입니다.

    스트라이핑의 실장을 위해서(때문에)는, striped (스트라이프화) 프렉스를 사용합니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        drive d3 device /dev/da4e
        drive d4 device /dev/da5e
        volume raid
         plex org striped 433k
           sd length 512m drive d1
           sd length 512m drive d2
           sd length 512m drive d3
           sd length 512m drive d4

    스트라이프화 프렉스의 최저 서브 디스크수는 2 개입니다. 많은 디스크를 사용하는 만큼, 성능이 향상합니다.

4.  양쪽 모두의 최선점을 얻는 것으로, 회복력과 성능의 양쪽 모두를 얻는 것을 생각합니다. 이것은, RAID-10 (RAID-1 와 RAID-0 의 편성)로 불리는 일이 있습니다. 이 명칭도 또 오해를 일으키게 하는 것입니다. vinum 그럼, 다음과 같은 설정 파일을 사용 가능합니다:

        drive d1 device /dev/da2e
        drive d2 device /dev/da3e
        drive d3 device /dev/da4e
        drive d4 device /dev/da5e
        volume raid setupstate
         plex org striped 433k
           sd length 512m drive d1
           sd length 512m drive d2
           sd length 512m drive d3
           sd length 512m drive d4
         plex org striped 433k
           sd length 512m drive d4
           sd length 512m drive d3
           sd length 512m drive d2
           sd length 512m drive d1

    여기에서는, 프렉스는 스트라이프화 되어 성능을 향상하고 있습니다. 그리고, 이러한 프렉스가 2 개 있어, 회복력을 향상하고 있습니다. 이 예로, 2 번째의 프렉스의 서브 디스크의 차례가, 1 번째의 프렉스가 거꾸로 되고 있는 것에 주의해 주세요. 이것은 성능이기 때문에여, 다음에 논의합니다. 더욱, 볼륨 지정에 키워드 setupstate (을)를 포함해, 전프렉스가 작성 후에 up 되는 것을 프로텍션하고 있습니다.

  볼륨의 작성
한번 설정 파일을 작성한 후는, vinum (을)를 기동해, 볼륨을 작성합니다. 이 예에서는, 설정 파일은 configfile 입니다:

    # vinum create -v configfile
       1: drive d1 device /dev/da2e
       2: drive d2 device /dev/da3e
       3: volume mirror
       4:  plex org concat
       5:    sd length 2g drive d1
       6:  plex org concat
       7:    sd length 2g drive d2
    Configuration summary
    Drives:         2 (4 configured)
    Volumes:        1 (4 configured)
    Plexes:         2 (8 configured)
    Subdisks:       2 (16 configured)
    Drive d1:       Device /dev/da2e
                    Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999
                    Config last updated Tue Mar 23 14:30:32 1999
                    Size:      60105216000 bytes (57320 MB)
                    Used:       2147619328 bytes (2048 MB)
                    Available: 57957596672 bytes (55272 MB)
                    State: up
                    Last error: none
    Drive d2:       Device /dev/da3e
                    Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999
                    Config last updated Tue Mar 23 14:30:33 1999
                    Size:      60105216000 bytes (57320 MB)
                    Used:       2147619328 bytes (2048 MB)
                    Available: 57957596672 bytes (55272 MB)
                    State: up
                    Last error: none
    Volume mirror:  Size: 2147483648 bytes (2048 MB)
                    State: up
                    Flags:
                    2 plexes
                    Read policy: round robin
    Plex mirror.p0: Size:   2147483648 bytes (2048 MB)
                    Subdisks:        1
                    State: up
                    Organization: concat
                    Part of volume mirror
    Plex mirror.p1: Size:   2147483648 bytes (2048 MB)
                    Subdisks:        1
                    State: up
                    Organization: concat
                    Part of volume mirror
    Subdisk mirror.p0.s0:
                    Size:       2147483648 bytes (2048 MB)
                    State: up
                    Plex mirror.p0 at offset 0
    Subdisk mirror.p1.s0:
                    Size:       2147483648 bytes (2048 MB)
                    State: up
                    Plex mirror.p1 at offset 0

-v 플래그는, 설정에 따라 파일을 리스트 하도록, vinum 에 지시합니다. 그 후, list -v 명령와 같은 서식에서, 현재의 설정을 리스트 합니다.

  보다 많은 볼륨을 작성한다
한번 vinum 볼륨을 작성한 후는, vinum (은)는 이러한 정보를 내부의 설정 파일에서 관리합니다. 재차 작성할 필요는 없습니다. 특히, create 명령을 재실행하면(자), 추가의 오브젝트를 만들게 됩니다:

    # vinum create sampleconfig
    Configuration summary
    Drives:         2 (4 configured)
    Volumes:        1 (4 configured)
    Plexes:         4 (8 configured)
    Subdisks:       4 (16 configured)
    D d1                    State: up       Device /dev/da2e        Avail: 53224/57320 MB (92%)
    D d2                    State: up       Device /dev/da3e        Avail: 53224/57320 MB (92%)
    V mirror                State: up       Plexes:       4 Size:       2048 MB
    P mirror.p0           C State: up       Subdisks:     1 Size:       2048 MB
    P mirror.p1           C State: up       Subdisks:     1 Size:       2048 MB
    P mirror.p2           C State: up       Subdisks:     1 Size:       2048 MB
    P mirror.p3           C State: up       Subdisks:     1 Size:       2048 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p1.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p2.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p3.s0          State: up       PO:        0  B Size:       2048 MB

이 예에서는 (이번은 -f 플래그를 붙이고 있습니다), create 의 재실행에 의해 4 개의 신규 프렉스를 작성해, 각각이 신규 서브 디스크를 가집니다. 다른 볼륨을 추가하고 싶은 경우, 이러한 유익의 신규 설정 파일을 작성합니다. vinum 하지만 이미 알고 있는 드라이브를 참조할 필요는 없습니다. 예를 들면, 볼륨 raid (을)를 4 개의 디스크 /dev/da1e, /dev/da2e, /dev/da3e, /dev/da4e 위에 작성하려면 , 다른 2 개에 대한 보고 기술하는 것만으로 좋습니다:

    drive d3 device /dev/da1e
    drive d4 device /dev/da4e
    volume raid
      plex org raid5 433k
        sd size 2g drive d1
        sd size 2g drive d2
        sd size 2g drive d3
        sd size 2g drive d4

이 설정 파일에서는, 다음과 같이 됩니다:

    # vinum create newconfig
    Configuration summary
    Drives:         4 (4 configured)
    Volumes:        2 (4 configured)
    Plexes:         5 (8 configured)
    Subdisks:       8 (16 configured)
    D d1                    State: up       Device /dev/da2e        Avail: 51176/57320 MB (89%)
    D d2                    State: up       Device /dev/da3e        Avail: 53220/57320 MB (89%)
    D d3                    State: up       Device /dev/da1e        Avail: 53224/57320 MB (92%)
    D d4                    State: up       Device /dev/da4e        Avail: 53224/57320 MB (92%)
    V mirror                State: down     Plexes:       4 Size:       2048 MB
    V raid                  State: down     Plexes:       1 Size:       6144 MB
    P mirror.p0           C State: init     Subdisks:     1 Size:       2048 MB
    P mirror.p1           C State: init     Subdisks:     1 Size:       2048 MB
    P mirror.p2           C State: init     Subdisks:     1 Size:       2048 MB
    P mirror.p3           C State: init     Subdisks:     1 Size:       2048 MB
    P raid.p0            R5 State: init     Subdisks:     4 Size:       6144 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p1.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p2.s0          State: up       PO:        0  B Size:       2048 MB
    S mirror.p3.s0          State: up       PO:        0  B Size:       2048 MB
    S raid.p0.s0            State: empty    PO:        0  B Size:       2048 MB
    S raid.p0.s1            State: empty    PO:      433 kB Size:       2048 MB
    S raid.p0.s2            State: empty    PO:      866 kB Size:       2048 MB
    S raid.p0.s3            State: empty    PO:     1299 kB Size:       2048 MB

RAID-5 프렉스의 크기에 주의해 주세요: 6 GB 밖에 없습니다만, 이것을 구성하기 위해서 디스크 공간을 8 GB 사용하고 있습니다. 이것은, 서브 디스크 1 개분상당을 패리티 데이터 격납에 사용하고 있기 때문입니다.

  Vinum 의 재기동
시스템의 리부트시에, start 명령로 vinum (을)를 기동합니다:

    # vinum start

이것에 의해, 시스템중의 전 vinum 드라이브가 기동합니다. 하등의 이유로 일부의 드라이브만을 기동하고 싶은 경우, read 명령을 사용해 주세요.

  성능 관련
최고 성능의 RAID 어레이 설정에 관한, 많은 잘못한 생각이 존재하고 있습니다. 특히, 대부분의 시스템으로 사용하고 있는 스트라이프의 크기는, 너무 작습니다. 이후의 논의는, vinum 뿐만이 아니고, 전 RAID 시스템에 들어맞읍니다.

FreeBSD 의 블록 I/O 시스템은,. 5 kB 에서 128 kB 까지의 요구를 발행합니다; 전형적인 믹스에서는, 거의 8 kB 입니다. 어떤 스트라이핑시스템에 대해도, 어느 요구가 2 개의 물리 요구에 분할되는 것을 피할 수 없고, 스트라이프를 충분히 세세하게 한다면보다 많게 분할되어 버립니다. 이것에 의해, 심대한 성능 열화가 됩니다: 디스크 근처의 전송 시간의 삭감은, 보다 큰 오더로 증가하는 지연시간에 의해 상쇄되어 버립니다.

최근의 디스크의 크기와 FreeBSD 의 블록 I/O 시스템에서는, 스트라이프의 크기를 256 kB 에서 512 kB 로 하면(자), 적당히 소수인 요구에 분할되는 것을 기대할 수 있습니다; 올바른 RAID 의 실장에서는, 큰 디스크에서의 스트라이프의 크기를 2 또는 4 MB 에 늘어나지 않는다 명확한 이유는 없습니다.

스트라이프 사이즈를 선택할 경우에는, 최신의 UFS 파일 시스템의 실린더 그룹의 크기는 32 MB 인 것을 인식하고 있어 주세요. 스트라이프 사이즈와 디스크수가 모두 2 의 누승의 경우, 모든 슈퍼 블록과 inode 가 동일한 서브 디스크에 놓여질 가능성이 있습니다. 이것은, 성능에 중대한 영향을 줍니다. 대표해에 홀수, 예를 들면 479 kB 를 선택해 주세요.

복수 액세스 시스템에서의 전송의 임펙트를 생각하기 위한 가장 용이한 방법은, 잠재적인 보틀 넥, 즉 디스크 하부조직의 관점으로부터 보는 것입니다: 즉, 전송에 필요로 하는 디스크 시간의 총계는 얼마인가? 입니다. 거의 모든 것이 캐쉬되고 있으므로, 요구와 완료와의 시간적인 관계는 그만큼 중요하지는 않습니다: 중요한 파라미터는, 요구가 디스크를 활동 상태로 하는 총시간이며, 이전 디스크는 다른 전송을 할 수 없게 됩니다. 이 결과, 전송이 동시에 발생해도 다를 때에 발생해도, 실제로는 문제는 되지 않습니다. 실제적으로는, 우리가 보고 있는 시간은, 지연시간의 총화 (위치 결정 시간과 회전 지연, 바꿔 말하면(자) 데이터가 디스크 헤드하에 올 때까지의 시간)과 총전송 시간입니다. 같은 속도의 디스크에의 전송에 대해서는, 전송 시간은 전송의 크기의 합계에만 의존합니다.

24 kB 의 전형적인 뉴스의 기사나 웹페이지를 생각하면(자), 이것은 1 회의 I/O 로 읽어들일 수 있습니다. 디스크가 전송 레이트 6 MB/s 로 평균 위치 결정 시간 8 ms 이며, 파일 시스템을 4 kB 블록이다고 합니다. 24 kB 이기 때문에, 단편화를 고려할 필요는 없고, 파일은 4 kB 경계로부터 개시합니다. 필요한 전송 회수는 블록 개시 위치에 의존합니다: 식은 (S + F - 1) / S 가 되어, S 는 파일 시스템 블록수에서의 스트라이프의 크기, F 는 파일 시스템 블록수에서의 파일의 크기입니다.

1.  스트라이프의 크기는 4 kB. 전송 회수는 6 회. 하부조직의 부하: 지연시간 48 ms, 전송 2 ms, 합계 50 ms.

2.  스트라이프의 크기는 8 kB. 전송 회수는 3.5 회. 하부조직의 부하: 지연시간 28 ms, 전송 2 ms, 합계 30 ms.

3.  스트라이프의 크기는 16 kB. 전송 회수는 2.25 회. 하부조직의 부하: 지연시간 18 ms, 전송 2 ms, 합계 20 ms.

4.  스트라이프의 크기는 256 kB. 평균 전송 회수는 1.08 회. 하부조직의 부하: 지연시간 8.6 ms, 전송 2 ms, 합계 10.6 ms.

5.  스트라이프의 크기는 4 MB. 평균 전송 회수는 1.0009 회. 하부조직의 부하: 지연시간 8.01 ms, 전송 2 ms, 합계 10.01 ms.

하드웨어 RAID 시스템에 따라서는, 큰 스트라이프에서는 문제가 있는 것이 있는 것 같습니다: 이러한 시스템에서는 완전한 스트라이프를 항상 디스크와의 사이에 전송 하는 것 같아, 큰 스트라이프는 성능에 역효과가 됩니다. vinum 유틸리티에서는 이 문제의 피해를 받지 않습니다: 모든 디스크 전송을 최적화해, 불필요한 데이터를 전송 하지 않기 때문입니다.

잘 알려진 벤치마크 프로그램으로 진정한 복수 액세스 상태 (100 을 넘는 동시 유저)(을)를 테스트하는 것은 없기 때문에, 이 주장의 올바름을 증명하는 것은 곤란한 것으로 주의해 주세요.

이러한 일을 생각하면(자), 다음일항이 vinum 볼륨의 성능에 영향을 줍니다:

•   스트라이핑은, 복수 액세스만의 성능을 향상합니다. 각 요구가 다른 디스크상에 있는 확률이 증가하기 때문입니다.

•   복수 드라이브에 걸치는 콘카치네이트화 UFS 파일 시스템도 또, 복수 파일 액세스의 성능을 향상합니다. UFS 는, 파일 시스템을 실린더 그룹에 분할해, 파일을 단일의 실린더 그룹에 두려고 하기 때문입니다. 일반적으로, 스트라이핑(정도)만큼은 효과가 없습니다.

•   미러링은, 읽기 복수 액세스의 성능을 향상 가능합니다. 디폴트에서는 vinum (은)는, 연속하는 복수의 읽기를, 연속하는 복수의 프렉스에 대해서 발행하기 때문입니다.

•   미러링은, 복수 액세스나 단일 액세스인가에 관련되지 않고, 모든 기입의 성능을 열화 시킵니다. 양쪽 모두의 프렉스에 대해, 데이터를 기입할 필요가 있기 때문입니다. 이것이, 전술의 미러링 설정에 있어서의 서브 디스크의 레이아웃의 설명입니다: 각 프렉스중의 대응하는 서브 디스크가 다른 물리 디스크에 있는 경우, 기입 명령은 병렬에 발행 가능합니다. 그러나, 같은 물리 디스크에 있는 경우, 순서대로적으로 실행되어 버립니다.

•   RAID-5 의 읽기는, 스트라이프화의 읽기와 본질적으로 같은 고려해야 할 점이 있습니다. 다만, 스트라이프화 프렉스가 밀러화 볼륨의 일부인 경우를 제외합니다. 이 경우, 밀러화 볼륨이 성능이 좋아집니다.

•   RAID-5 의 기입은, 스트라이프화의 기입의 약 25% 의 속도입니다: 기입을 실시하려면 , vinum (은)는 우선 데이터 블록과 대응하는 패리티 블록을 읽어들여, 약간의 계산을 실시해, 패리티 블록과 데이터 블록을 써 되돌릴 필요가 있기 때문에, 스트라이프화 프렉스에 대한 기입의 4 배의 전송 회수가 됩니다. 한편, 이것은 미러링의 코스트에 의해 상쇄되기 때문에, 단일 RAID-5 프렉스의 볼륨에의 기입은, 2 개의 스트라이프화 프렉스로부터 되는 올바르게 설정된 볼륨에의 기입 속도의 반이 됩니다.

•   vinum 의 설정이 바뀌면(자) (예를 들면, 오브젝트의 추가나 삭제, 또는 오브젝트 상태 변경), vinum (은)는 128 kB 까지의 갱신된 설정을 각 드라이브에 기입합니다. 드라이브수가 증가하면(자), 이 시간이 길어집니다.

  Vinum 볼륨상에 파일 시스템을 작성한다
vinum 볼륨상에 파일 시스템을 작성하기 전에 disklabel(8) (을)를 실행할 필요는 없습니다. newfs(8) 만을 실행해 주세요. -v 옵션을 사용해, 디바이스가 파티션에 분할되지 않게 해 주세요. 예를 들면, 볼륨 mirror 위에 파일 시스템을 작성하려면 , 다음의 명령을 입력합니다:

    # newfs -v /dev/vinum/mirror

vinum 의 설정에 관계하는 몇 개의 그 외무늬가 있습니다:

•   복수의 드라이브를 단일 디스크상에 작성해도, 이익은 없습니다. 각 드라이브는 131.5 kB 의 데이터를 label와 설정 정보에 사용해, 설정 변경시에 성능이 열화 합니다. 적절한 크기의 서브 디스크를 사용해 주세요.

•   콘카치네이트화 vinum 프렉스의 크기를 늘릴 수 있습니다만, 현재로서는 스트라이프화 프렉스와 RAID-5 프렉스에서는 늘어날 수 없습니다. 현재로서는 기존의 UFS 파일 시스템의 크기를 늘릴 수도 있습니다. 프렉스 및 파일 시스템을 확장 가능으로 할 계획은 있습니다.

상태 관리 (STATE MANAGEMENT)
Vinum 오브젝트는 state 의 개념을 가집니다. 자세한 것은 vinum(4) (을)를 참조해 주세요. 만약 그러한 상태가 up (이)라면, 그것들은 완전하게 액세스 가능할 뿐(만큼)입니다. 오브젝트 상태를 up (으)로 변경하려면 start 명령을 사용합니다. 오브젝트 상태를 down (으)로 변경하려면 stop 명령을 사용합니다. 통상, 다른 상태는 오브젝트간의 관계에 의해 자동적으로 만들어집니다. 예를 들면, 만약 당신이 볼륨에 프렉스를 추가하면(자), 프렉스의 서브 디스크는, 하드웨어가 액세스 가능하다 그러나, 서브 디스크상의 데이터는 부정한 것을 나타낸다 empty 상태로 설정되겠지요. 이 상태의 결과로서, 프렉스는 faulty 상태로 설정되겠지요.

  `reviving'상태
많은 경우, 당신이 서브 디스크를 기동할 때에, 시스템은 서브 디스크에 데이터를 카피하지 않으면 안됩니다. 서브 디스크의 크기에 의합니다만, 이것은 긴 시간 걸립니다. 이전, 서브 디스크는 reviving 상태로 설정됩니다. 카피 조작이 올바르게 종료하면, 그것은 자동적으로 up 상태로 설정됩니다. 프로세스가, 회복 (revive)을 정지시켜, 그리고 재개시키는 일이 있습니다. 시스템은 서브 디스크의 회복의 진척 상태를 보관 유지해, 그리고 start 명령이 재발행되었을 때, 그 시점으로부터 카피를 재개합니다.

볼륨의 프렉스가 하나 이상이 회복하고 있는 동안은 볼륨의 정합성을 유지하기 위해서(때문에), vinum (은)는 기입하는 장소까지 회복시킨 서브 디스크에 씁니다. 만약 읽어내는 area가 벌써 회복하고 있다면, 프렉스로부터 읽어낼 수가 있습니다.

이해하기 어려운 사양 (GOTCHAS)
다음일(무늬)격은 버그가 아니고, 존재하는 이유가 있습니다만, 혼란을 일으키는 것입니다. 각 항목은 적절한 마디에 대해 논의되고 있습니다.

1.  vinum 드라이브는 UNIX 디스크 패티션이며, 파티션 타입 vinum 인 것이 필요합니다. 이것은, 파티션 타입이 4.2BSD 인 것을 기대한다 ccd (와)과는 다릅니다. 이 ccd 의 동작은, 자신의 발밑을 구하게 됩니다: ccd 그럼, 용이하게 파일 시스템을 덧쓰기 가능하게 됩니다. vinum 유틸리티에서는 그러한 일은 허락하지 않습니다.

    같은 이유로, vinum start 명령은, 파티션 “c” 위의 드라이브를 받아들이지 않습니다. 파티션 “c” (은)는, 디스크 전체를 표현하기 위해서 시스템이 사용해, 타입 unused 일 필요가 있습니다. 여기에는 명확한 모순이 있으므로, “c” 파티션을 사용하지 않는 것에보다 vinum (은)는 문제를 해결하고 있습니다.

2.  복수의 프렉스로부터 되는 볼륨 작성시에, vinum (은)는 프렉스를 자동적으로는 초기화하지 않습니다. 이것은, 내용에 대해서는 몰라도, 이러한 사이에는 확실히 일관성이 없다고 하는 것을 의미하고 있습니다. 그 결과 디폴트에서는, 신규 작성된 프렉스 중 최초의 것을 제외한 모든 상태를, vinum 하 faulty (잘못) 상태로 설정합니다. 이것들을 최초의 프렉스와 동기 시키려면 , 이러한 서브 디스크를 start 시킬 필요가 있습니다. 이것에 의해, up 상태의 프렉스로부터 vinum 에 데이터를 카피시킵니다. 관계하는 서브 디스크의 크기에 의존해, 필요한 시간은 길어질 수 있습니다.

    실제상은, 프렉스 작성시에 그 내용에 다대한 흥미를 가지는 사람은 없기 때문에, 다른 볼륨 매니저는 어떤 때라도 up (으)로 설정해 속입니다. vinum 유틸리티는, 신규 작성된 프렉스가 up 상태인 것을 프로텍션하기 위해서, 2 개의 방법을 제공합니다:

    •   프렉스를 작성해, 그것들을 vinum start 그리고 동기 합니다.

    •   키워드 setupstate 부착으로 볼륨 (프렉스가 아닙니다)을 작성합니다. 이 키워드는, 모순이 존재해도 무시해 프렉스 상태를 up 상태로 하도록(듯이), vinum 에 지시합니다.

3.  현재 vinum 하지만 서포트하고 있는 명령에는, 실제로는 불필요한 것이 있습니다. 나에게는 이해할 수 없는 이유가 있겠지요가, label 및 resetconfig 의 명령을 사용하려고 하는 유저를 자주 눈에 띕니다. 특히 resetconfig (은)는, 모든 종류의 무서운 메세지를 표시하는 것에도 불구하고입니다. 정당한 이유 없이 , 이러한 명령을 사용하지 말아 주세요.

4.  상태 천이에는 매우 알기 어려운 것이 있습니다. 사실, 이것이 버그인지 사양인지는 명확하지는 않습니다. reborn 서브 디스크등의, 기묘한 상태가 된 오브젝트를 기동할 수 없는 경우에는, stop 또는 stop -f 의 명령을 사용해, 우선 stopped 상태에 천이 시켜 주세요. 이것이 능숙하게 가면, 오브젝트를 기동할 수 있을 것입니다. 간단한 방법에서는 능숙하게 가지 않아서, 이것이 유일한 회복 수단인 경우, 그 상황을 보고해 주세요.

5.  커널 모듈을 -DVINUMDEBUG 옵션 첨부로 구축했을 경우, vinum 도 또한 -DVINUMDEBUG 옵션 첨부로 구축할 필요가 있습니다. 왜냐하면, 양쪽 모두의 컴퍼넌트로 사용되는 데이터 오브젝트에, 크기가 본옵션에 의존하고 있는 것이 있기 때문입니다. 앞에서 본 같게 하지 않으면 대응하는 에러 메세지를 표시해 명령이 실패합니다.

6.  vinum read 명령의 문법은, 구토를 개최하는 것입니다. 이것이 유일한 vinum 기동을 위한 명령였지만, 지금의 바람직한 방법은 vinum start 입니다. vinum read (은)는 정비에만 사용해야 합니다. 문법이 변경되었으므로, 당겨 수가 /dev/da0 (와)과 같은 디스크 슬라이스이며 /dev/da0e (와)과 같은 파티션은 아닌 것에 주의해 주세요.

관련 파일
/dev/vinum
    vinum 오브젝트의 디바이스 노드가 있는 디렉토리
/dev/vinum/control
    vinum 의 제어 디바이스
/dev/vinum/plex
    vinum 프렉스의 디바이스 노드가 있는 디렉토리
/dev/vinum/sd
    vinum 서브 디스크의 디바이스 노드가 있는 디렉토리

환경 변수

VINUM_HISTORY
    로그 파일의 이름입니다. 디폴트에서는 /var/log/vinum_history 입니다.

VINUM_DATEFORMAT
    로그 파일중의 일자의 서식입니다. 디폴트는 %e %b %Y %H:%M:%S 입니다.

EDITOR
    설정 파일의 편집에 사용하는 에디터의 이름입니다. 디폴트는 vi 입니다.

관련 항목
strftime(3), vinum(4), disklabel(8), newfs(8)

http://www.vinumvm.org/vinum/, http://www.vinumvm.org/vinum/how-to-debug.html.

저자
Greg Lehey <grog@lemis.com>

역사
vinum 유틸리티는 FreeBSD 3.0 (으)로부터 등장했습니다. vinum 의 RAID-5 컴퍼넌트는, NetMAX 제품을 위해서(때문에) Cybernet Inc. (www.cybernet.com) 하지만 개발했습니다.