新濠天地 > 编程网新闻 > 新濠天地一、代码施行前准备,3.把代码放到钦赐

原标题:新濠天地一、代码施行前准备,3.把代码放到钦赐

浏览次数:173 时间:2019-09-20

1.平昔在github上clone对应的代码 , 地址为:

一、代码试行前计划

1、系统中装置了CEPH集群

xxxxxxx为所缺的库名 , 比方net库 text库

2、GOPATH目录下存在src/github.com/noahdesu/go-ceph代码库

3、在ubuntu 14.04下还需apt-get librados-dev和librbd-dev两个包

 

2.在概念的GOPATH目录 ,譬如 : /home/ubuntu/gobook ,clone到钦赐的目录

二、代码示例

新濠天地,cd /home/ubuntu/gobook/src/golang.org/

package main 

import (
    "fmt"
    "github.com/noahdesu/go-ceph/rados"
    "github.com/noahdesu/go-ceph/rbd"
)

const (
    DefaultRadosConfigFile = "/etc/ceph/ceph.conf"
    DefaultBaseImageSize = 10 * 1024 * 1024 * 1024
    DefaultPoolName = "rbd"
)

func main() {
    // connect to the cluster
    conn,_ := rados.NewConn()
    if err := conn.ReadConfigFile(DefaultRadosConfigFile); err != nil {
        fmt.Printf("Rbd read config failed: %v",err)
        return
    }
    if err := conn.Connect(); err != nil {
        fmt.Printf("Rbd connect failed: %v",err)
        return
    }

    // connect to the pool
    ioctx,err := conn.OpenIOContext(DefaultPoolName)
    if err != nil {
        fmt.Printf("Rbd open pool failed: %v",err)
        return
    }

    // create base image
    baseImageName := "test"
    _,err = rbd.Create(ioctx,baseImageName,DefaultBaseImageSize,rbd.RbdFeatureLayering)
    if err != nil {
        fmt.Printf("Rbd create image failed: %v",err)
        return
    }

    img := rbd.GetImage(ioctx,baseImageName)

    // we should open base image first
    if err := img.Open(); err != nil {
        fmt.Printf("Rbd open image  failed: %v",err)
        return
    }

    defer img.Close()

    // create snapshot
    snapName := "test-snap"
    snapshot,err := img.CreateSnapshot(snapName)
    if err != nil {
        fmt.Printf("Rbd create snapshot failed: %v",err)
        return
    }

    // protect snapshot 
    if err := snapshot.Protect(); err != nil {
        fmt.Printf("Rbd create snapshot failed: %v",err)
        return 
    }

    // make a clone image based on the snap shot
    cloneImageName := "clone-test"
    _,err = img.Clone(snapName,ioctx,cloneImageName,rbd.RbdFeatureLayering)
    if err != nil {
        fmt.Printf("Rbd clone snapshot failed: %v",err)
        return 
    }

    return
}

git clone text

  

3.把代码放到钦定的GOPATH的目录,就能够直接运用了

三、最后会转换三个名字为"test"的基础image,以及四个基于"test"的名叫"test-snap"的snapshot,最终还应该有三个基于快速照相"test-snap"的clone。

新濠天地 1

  注:在创制"test"时,size参数无法太小,否则在创设快速照相的时候会产生错误。

本文由新濠天地发布于编程网新闻,转载请注明出处:新濠天地一、代码施行前准备,3.把代码放到钦赐

关键词:

上一篇:最佳的办法是安装brew

下一篇:次第设计竞技前读文件手艺