Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

개선 기능및 이슈 #348에 의한 AWS RootDisk 및 사이즈 변경 기능 지원및 Tencent 방식 개선 #523

Merged
merged 2 commits into from
Nov 10, 2021

Conversation

dev4unet
Copy link
Member

개선 기능및 이슈 #348에 의한 AWS RootDisk 변경 기능 지원및 Tencent 지원 방식 개선

  • AWS RootDisk RootDisk 설정기능 추가
  • Tencent RootDisk 설정 방식도 다른 CSP와 동일하게 동작하도록 변경
  • 사이즈에 "default"로 설정되면 각 CSP별 고정된 값으로 셋팅(AWS:8GB / Tencent:50GB)
  • Type이 지정되지 않으면 CSP 기본 옵션으로 생성 (디스크 관련 옵션 설정하지 않음)
  • Size가 지정되지 않으면 CSP 기본 옵션으로 생성 (디스크 관련 옵션 설정하지 않음)
  • 전달 받은 Type이 있으면 디스크 타입을 해당 값으로 설정
  • 전달 받은 Size가 있으면 디스크 사이즈를 해당 값으로 설정

AWS - RootDisk 설정 기능 추가

  • 사용 가능 디스크 타입 : standard/io1/io2/gp2/sc1/st1/gp3
  • Default 스토리지 : 8GB / 스토리지 지정 시 Image Size 보다 작으면 에러 남.
  • 디스크 타입 및 디스크 사이즈 개별 지정 가능
  • ap-northeast-1a리전에서 t2.micro 스펙으로 테스트 했음.

[테스트 옵션및 결과]
VMSpecName: "t2.micro"
RootDiskType: ""
RootDiskSize: ""
--> gp2, 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard"
--> standard, 8GB

VMSpecName: "t2.micro"
RootDiskSize: "12"
--> gp2, 12GB

VMSpecName: "t2.micro"
RootDiskSize: "default"
--> gp2, 8GB

VMSpecName: "t2.micro"
RootDiskType: "gp3",
RootDiskSize: "Default",
--> gp3, 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard",
RootDiskSize: "6", //Image Size(8GB) 보다 작으면 에러 남
--> Volume of size 6GB is smaller than snapshot 'snap-095f9b3409e0b354e', expect size >= 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard",
RootDiskSize: "60",
--> standard, 60GB

Tencent - 다른 CSP와 동작 방식 통일

  • 사용 가능 디스크 타입 : LOCAL_BASIC/LOCAL_SSD/CLOUD_BASIC/CLOUD_SSD/CLOUD_PREMIUM
  • Default 스토리지 : 50GB / 스토리지 지정 시 Image Size 보다 작으면 에러 남.
  • 디스크 타입 및 디스크 사이즈 개별 지정 가능
  • ap-tokyo-2 Zone에서 M5.SMALL8 및 C4.LARGE8 스펙으로 테스트 완료

[테스트 옵션및 결과]
VMSpecName: "M5.SMALL8"
RootDiskType: ""
RootDiskSize: ""
--> Premium Cloud Storage,50GB

VMSpecName: "M5.SMALL8"
RootDiskType: "CLOUD_SSD"
--> SSD cloud disks,50GB

VMSpecName: "M5.SMALL8"
RootDiskSize: "70"
--> Premium Cloud Storage,70GB

VMSpecName: "C4.LARGE8"
RootDiskSize: "default"
--> Premium Cloud Storage,50GB

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_PREMIUM",
RootDiskSize: "Default",
--> Premium Cloud Storage,50GB

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_SSD",
RootDiskSize: "30", //Image Size 보다 작으면 에러 남
--> Image size cannot be larger than system disk size, please enlarge the system disk size or change another image.

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_SSD",
RootDiskSize: "60",
--> SSD cloud disks,60GB

ap-tokyo-2 Zone에서 M5.SMALL8 및 C4.LARGE8 스펙으로 테스트 완료
VMSpecName: "M5.SMALL8"
RootDiskType: ""
RootDiskSize: ""
--> Premium Cloud Storage,50GB

VMSpecName: "M5.SMALL8"
RootDiskType: "CLOUD_SSD"
--> SSD cloud disks,50GB

VMSpecName: "M5.SMALL8"
RootDiskSize: "70"
--> Premium Cloud Storage,70GB

VMSpecName: "C4.LARGE8"
RootDiskSize: "default"
--> Premium Cloud Storage,50GB

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_PREMIUM",
RootDiskSize: "Default",
--> Premium Cloud Storage,50GB

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_SSD",
RootDiskSize: "30", //Image Size 보다 작으면 에러 남
--> Image size cannot be larger than system disk size, please enlarge the system disk size or change another image.

VMSpecName: "C4.LARGE8"
RootDiskType: "CLOUD_SSD",
RootDiskSize: "60",
--> SSD cloud disks,60GB
사용 가능 디스크 타입 : standard/io1/io2/gp2/sc1/st1/gp3
Default 스토리지 : 8GB
AWS는 디스크 타입 및 디스크 사이즈 개별 지정 가능
ap-northeast-1a리전에서 t2.micro 스펙으로 테스트 했음.
VMSpecName: "t2.micro"
RootDiskType: ""
RootDiskSize: ""
--> gp2, 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard"
--> standard, 8GB

VMSpecName: "t2.micro"
RootDiskSize: "12"
--> gp2, 12GB

VMSpecName: "t2.micro"
RootDiskSize: "default"
--> gp2, 8GB

VMSpecName: "t2.micro"
RootDiskType: "gp3",
RootDiskSize: "Default",
--> gp3, 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard",
RootDiskSize: "6", //Image Size(8GB) 보다 작으면 에러 남
--> Volume of size 6GB is smaller than  snapshot 'snap-095f9b3409e0b354e', expect size >= 8GB

VMSpecName: "t2.micro"
RootDiskType: "standard",
RootDiskSize: "60",
--> standard, 60GB
@powerkimhub powerkimhub self-requested a review November 10, 2021 11:21
@powerkimhub powerkimhub merged commit 19d8b32 into cloud-barista:master Nov 10, 2021
@powerkimhub
Copy link
Member

powerkimhub commented Nov 10, 2021

@dev4unet

Root Disk 설정 관련

  • 설정은 잘 적용이 되어 VM이 생성되었습니다^^
  • VM 생성 후 반환 정보는 관련된 값이 설정되지 않고 반환 되고 있습니다.
  • 아래 표시 부분 참고하시어, 확인 부탁드립니다.
  • 다른 CSP 관련 부분도 확인 부탁드립니다.
type VMInfo struct {
        IId       IID       // {NameId, SystemId}
        StartTime time.Time // Timezone: based on cloud-barista server location.

        Region            RegionInfo //  ex) {us-east1, us-east1-c} or {ap-northeast-2}
        ImageIId          IID
        VMSpecName        string //  instance type or flavour, etc... ex) t2.micro or f1.micro
        VpcIID            IID
        SubnetIID         IID   // AWS, ex) subnet-8c4a53e4
        SecurityGroupIIds []IID // AWS, ex) sg-0b7452563e1121bb6

        KeyPairIId IID

        RootDiskType    string  // "SSD(gp2)", "Premium SSD", ...      <=======
        RootDiskSize    string  // "default", "50", "1000" (GB)       <=======
        RootDeviceName  string // "/dev/sda1", ...                   <=======
        VMBootDisk      string // Deprecated soon

        VMBlockDisk string // ex)

        VMUserId     string // ex) user1
        VMUserPasswd string

        NetworkInterface string // ex) eth0
        PublicIP         string
        PublicDNS        string
        PrivateIP        string
        PrivateDNS       string


        SSHAccessPoint string // ex) 10.2.3.2:22, 123.456.789.123:4321

        KeyValueList []KeyValue
}

@powerkimhub
Copy link
Member

@dev4unet

[AWS]

  • io1, `io2' type의 경우, iops 설정을 필수로 요구하고 있습니다. (아래 메시지 참고)
  • sc1, st1의 경우, 125GB 이상 설정을 요구하고 있습니다.ㅠㅠ
  • 현재 정의된 규격으로는 standard, gp2, gp3는 성공하였습니다.
  • 일단, 제 생각으로는 cloudos_meta.yaml 값을 standard, gp2, gp3로 설정하고,
  • 나머지 Type은 시간을 가지고 좀더 고민을 해보는 게 좋을 거 같습니다.

   "message" : "InvalidParameterCombination: The parameter iops must be specified for io1 volumes.\n\tstatus code: 400, request id: 69cd5169-1742-4ce4-a060-fde0017e8810"
 "message" : "InvalidParameterCombination: The parameter iops must be specified for io2 volumes.\n\tstatus code: 400, request id: ebda165b-b3bc-4e4c-816a-66f1a2b43798"
"message" : "InvalidParameterValue: The volume size is invalid for sc1 volumes: 8 GiB. sc1 volumes must be at least 125 GiB in size. Please specify a volume size above the minimum limit.\n\tstatus code: 400, request id: 58dbe353-ae7e-4ad4-afbe-630d892433b6"
"message" : "InvalidParameterValue: The volume size is invalid for st1 volumes: 8 GiB. st1 volumes must be at least 125 GiB in size. Please specify a volume size above the minimum limit.\n\tstatus code: 400, request id: 0b184274-5092-4816-a28a-cdf9a39c8d8d"

@dev4unet
Copy link
Member Author

@powerkimhub io1/io2는 처리할 파라메터가 없어서 어쩔 수 없지만...
sc1, st1는 사용자측의 사이즈 입력 오류로 볼 수도 있을 듯싶네요.
지금은 스토리지 타입별로 기본 값을 설정하지 않고 하나의 값을 기본값으로 사용하기 때문에 "default"로 전달 받으면 강제로 8이 셋팅되지만 저런 케이스를 감안해서 아예 DiskSize의 값 자체를 전달하지 않으면 API 자체를 셋팅하지 않고 CSP의 API가 내부적으로 기본값으로 처리하기 때문에 사이즈가 default로 요청된경우 DiskSize 값을 ""로 보내면 sc1, st1의 처리는 가능할거예요.
그래서 API 자체에서 정한 기본 값("")과 저희가 사용자 측면에서의 편의를 위해 임의(?)로 정한 기본값("default")의 용도를 구분하면 어느 정도 처리가 될 것같기도 하지만 모든 CSP가 동일하게 처리 가능한지가 관건이겠네요.

@powerkimhub
Copy link
Member

@dev4unet

  • 넵, 캄사합니다.
  • 일단, beta 버전 배포는 안정적인 AWS 3가지 Type으로 한정해서 배포 예정입니다.
    • 그래도, 타 FW이 시험 및 활용해보는 데는 크게 문제는 없을 것 같습니다.
  • 이후, Affogato 정식 버전까지 추가 고민을 해봐야 겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants