DC/OS Local Persistent Volumes

7056 단어
MESOS 로컬 영구화 스토리지 유형:
  • 루트, 가장 기본적인 저장 자원, 기본값은mesos에이전트 작업 경로의 저장 자원입니다.
  • 응용 공유식 사용.
  • 응용 프로그램을 만드는 동시에/var/lib/mesos/slave/volumes 디렉터리에 응용 프로그램의 저장 디렉터리를 생성합니다.
  • 에이전트는 루트 유형 저장소 2G를 에스컬레이션합니다.
  •     [
          {
            "name" : "disk",
            "type" : "SCALAR",
            "scalar" : { "value" : 2048 }
          }
        ]
    
  • path는 추가 저장 자원으로 전체 디스크를 디렉터리 저장 방식으로 구분할 수 있다.로그 저장소, 백업, 성능 요구 사항이 없는 저장소에 사용됩니다.
  • 응용 공유식 사용.
  • 응용 프로그램을 만드는 동시에 path 디렉터리에 응용 프로그램의 저장 디렉터리를 생성합니다.
  • 예를 들어 mount/dev/sdb/mnt & & mkdir/mnt/data,/dev/sdb는 10G이고 에이전트는 디렉터리 저장 자원/mnt/data를 보고하고 2G 크기를 사용합니다.
  •     [
          {
            "name" : "disk",
            "type" : "SCALAR",
            "scalar" : { "value" : 2048 },
            "disk" : {
              "source" : {
                "type" : "PATH",
                "path" : { "root" : "/mnt/data" }
              }
            }
          }
        ]
    
  • mount, 추가 저장 자원으로 전체 블록만 사용할 수 있고 path류 저장처럼 분할해서 사용할 수 없습니다.데이터베이스, write-ahead-log (WAL 미리 쓰기 로그) 에 사용되며, 성능 요구가 있는 저장소에 사용됩니다.
  • 응용 독점식 사용.
  • 응용 프로그램을 만들 때 전체 디스크 자원을 사용하여 미리 존재하는 데이터 파일/디렉터리를 허용하지만 mesos가 응용 프로그램을 삭제할 때 모든 데이터를 삭제한다
  • mount/dev/sdb/mnt/data와 같이 에이전트는 디스크 자원/mnt/data를 저장하고 크기 2G를 사용합니다.
  •     [
          {
            "name" : "disk",
            "type" : "SCALAR",
            "scalar" : { "value" : 2048 },
            "disk" : {
              "source" : {
                "type" : "MOUNT",
                "mount" : { "root" : "/mnt/data" }
              }
            }
          }
        ]
    

    Marathon docker 응용 프로그램에서 local persistent volume 사용 예
    Marathon은 이 몇 가지Persistent Volume의 사용 구분에 대해 주로persistent를 통해 구분한다.type이 제어합니다.
    운영 프로세스:
    1. marathon    
    2.     mount  
    3.   tmp.txt
    4.     ,  tmp.txt
    5.            
    

    root
    marathon 응용 프로그램 만들기
    {
      "id": "/cwc/test/test-root",
      "instances": 1,
      "portDefinitions": [],
      "container": {
        "type": "DOCKER",
        "docker": {
          "image": "busybox"
        },
        "volumes": [
          {
            "persistent": {
              "size": 100
            },
            "mode": "RW",
            "containerPath": "mydata"
          },
          {
            "containerPath": "/mydata",
            "hostPath": "mydata",
            "mode": "RW"
          }
        ]
      },
      "cpus": 0.1,
      "mem": 128,
      "requirePorts": false,
      "cmd": "tail -f /dev/null",
      "residency": {
        "relaunchEscalationTimeoutSeconds": 10,
        "taskLostBehavior": "WAIT_FOREVER"
      }
    }
    

    이 때 Marathon은 랜덤으로 호스트를 선택하여 응용 프로그램을 배치합니다. 이후 이 응용 프로그램과 관련된 모든 작업은 이 호스트에서만 실행됩니다.보이다
  • 응용 용기 메모리 저장 디렉터리/mydata
  • 호스트 메모리 디렉터리/var/lib/mesos/slave/volumes/roles/slavepublic/cwc_test_test-root#mydata#743b88a7-8e17-11e7-b490-b6a91729f427
  • 애플리케이션 재가동 데이터
  • 에이전트 재부팅, 자동 복구, 데이터 불변
  • 어플리케이션 폐기, 데이터 소실
  • path
    marathon 응용 프로그램
    {
      "id": "/cwc/test/test-path",
      "instances": 1,
      "portDefinitions": [],
      "container": {
        "type": "DOCKER",
        "docker": {
          "image": "busybox",
          "network": "HOST"
        },
        "volumes": [
          {
            "persistent": {
              "size": 100,
              "type": "path"
            },
            "mode": "RW",
            "containerPath": "mydata"
          },
          {
            "containerPath": "/mydata",
            "hostPath": "mydata",
            "mode": "RW"
          }
        ]
      },
      "cpus": 0.1,
      "mem": 128,
      "requirePorts": false,
      "cmd": "tail -f /dev/null",
      "residency": {
        "relaunchEscalationTimeoutSeconds": 10,
        "taskLostBehavior": "WAIT_FOREVER"
      }
    }
    

    이 때 Marathon은 랜덤으로 호스트를 선택하여 응용 프로그램을 배치합니다. 이후 이 응용 프로그램과 관련된 모든 작업은 이 호스트에서만 실행됩니다.보이다
  • 응용 용기 메모리 저장 디렉터리/mydata
  • 호스트 메모리 디렉터리/mnt/data/volumes/roles/slavepublic/cwc_test_test-path#mydata#8f2d2ba9-8e1c-11e7-b490-b6a91729f427/
  • 애플리케이션 재가동 데이터
  • 에이전트 재부팅, 데이터 불변
  • 어플리케이션 폐기, 데이터 소실
  • 에이전트 재resize path resource, 응용 프로그램 시작 실패
  • mount
    marathon 응용 프로그램
    {
      "id": "/cwc/test/test-mount",
      "instances": 1,
      "portDefinitions": [],
      "container": {
        "type": "DOCKER",
        "docker": {
          "image": "busybox"
        },
        "volumes": [
          {
            "persistent": {
              "size": 100,
              "type": "mount"
            },
            "mode": "RW",
            "containerPath": "mydata"
          },
          {
            "containerPath": "/mydata",
            "hostPath": "mydata",
            "mode": "RW"
          }
        ]
      },
      "cpus": 0.1,
      "mem": 128,
      "requirePorts": false,
      "cmd": "tail -f /dev/null",
      "constraints": [
        [
          "hostname",
          "LIKE",
          "192.168.131.4"
        ]
      ],
      "residency": {
        "relaunchEscalationTimeoutSeconds": 10,
        "taskLostBehavior": "WAIT_FOREVER"
      }
    }
    
  • 응용 용기 메모리 저장 디렉터리/mydata
  • 호스트 스토리지 디렉토리/dcos/volume0/
  • 애플리케이션 재가동 데이터 존재
  • 에이전트 재부팅, 데이터 존재
  • 어플리케이션 폐기, 데이터 소실
  • 에이전트 재resize mount resource, 응용 프로그램 시작 실패
  • Marathon은 Host Volume 사용
    {
        "type": "DOCKER",
        "volumes": [
            {
                "mode": "RO",
                "container_path": "/etc/localtime",
                "host_path": "/etc/localtime"
            },
            {
                "mode": "RW",
                "container_path": "/tmp",
                "host_path": "/tmp"
            }
        ],
        "docker": {
            "image": "busybox",
            "network": "HOST",
            "privileged": false,
            "parameters": [
                {
                    "key": "label",
                    "value": "MESOS_TASK_ID=cwc_test-local-path.75db9606-97d6-11e7-aaa2-36ce7409b167"
                }
            ],
            "force_pull_image": false
        }
    }
    

    자료 검색
    mesos multiple-disk
    dcos persistent volume
    marathon persistent volumes

    좋은 웹페이지 즐겨찾기