示例#1
0
 def reduce(self, newSize):
     """Reduce a logical volume
         'newSize' - new size in blocks
     """
     self.log.info("Request to reduce LV %s of image %s in VG %s with "
                   "size = %s", self.volUUID, self.imgUUID, self.sdUUID,
                   newSize)
     sizemb = (newSize + SECTORS_TO_MB - 1) / SECTORS_TO_MB
     lvm.reduceLV(self.sdUUID, self.volUUID, sizemb)
示例#2
0
文件: blockVolume.py 项目: EdDev/vdsm
 def reduce(self, newSize):
     """Reduce a logical volume
         'newSize' - new size in blocks
     """
     self.log.info("Request to reduce LV %s of image %s in VG %s with "
                   "size = %s", self.volUUID, self.imgUUID, self.sdUUID,
                   newSize)
     sizemb = (newSize + SECTORS_TO_MB - 1) / SECTORS_TO_MB
     lvm.reduceLV(self.sdUUID, self.volUUID, sizemb)
示例#3
0
    def reduce(self, newSize, allowActive=False):
        """
        Reduce the size of the logical volume.

        Arguments:
            newSize (int) - new size in blocks
            allowActive (boolean) - indicates whether the LV is active
        """
        self.log.info("Request to reduce LV %s of image %s in VG %s with "
                      "size = %s allowActive = %s", self.volUUID, self.imgUUID,
                      self.sdUUID, newSize, allowActive)
        sizemb = utils.round(newSize, BLOCKS_TO_MB) // BLOCKS_TO_MB
        lvm.reduceLV(self.sdUUID, self.volUUID, sizemb, force=allowActive)
示例#4
0
文件: blockVolume.py 项目: nirs/vdsm
    def reduce(self, newSize, allowActive=False):
        """
        Reduce the size of the logical volume.

        Arguments:
            newSize (int) - new size in blocks
            allowActive (boolean) - indicates whether the LV is active
        """
        self.log.info("Request to reduce LV %s of image %s in VG %s with "
                      "size = %s allowActive = %s", self.volUUID, self.imgUUID,
                      self.sdUUID, newSize, allowActive)
        sizemb = utils.round(newSize, BLOCKS_TO_MB) // BLOCKS_TO_MB
        lvm.reduceLV(self.sdUUID, self.volUUID, sizemb, force=allowActive)
示例#5
0
def test_lv_extend_reduce(tmp_storage):
    dev_size = 20 * 1024**3
    dev = tmp_storage.create_device(dev_size)
    vg_name = str(uuid.uuid4())
    lv_name = str(uuid.uuid4())

    lvm.set_read_only(False)

    lvm.createVG(vg_name, [dev], "initial-tag", 128)

    lvm.createLV(vg_name, lv_name, 1024)

    lvm.extendLV(vg_name, lv_name, 2048)

    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 2 * 1024**3

    # Reducing active LV requires force.
    lvm.reduceLV(vg_name, lv_name, 1024, force=True)
    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 1 * 1024**3
示例#6
0
def test_lv_extend_reduce(tmp_storage):
    dev_size = 20 * GiB
    dev = tmp_storage.create_device(dev_size)
    vg_name = str(uuid.uuid4())
    lv_name = str(uuid.uuid4())

    lvm.set_read_only(False)

    lvm.createVG(vg_name, [dev], "initial-tag", 128)

    lvm.createLV(vg_name, lv_name, 1024)

    lvm.extendLV(vg_name, lv_name, 2048)

    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 2 * GiB

    # Extending LV to same does nothing.

    lvm.extendLV(vg_name, lv_name, 2048)

    lvm.invalidateVG(vg_name)
    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 2 * GiB

    # Extending LV to smaller size does nothing.

    lvm.extendLV(vg_name, lv_name, 1024)

    lvm.invalidateVG(vg_name)
    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 2 * GiB

    # Reducing active LV requires force.
    lvm.reduceLV(vg_name, lv_name, 1024, force=True)
    lv = lvm.getLV(vg_name, lv_name)
    assert int(lv.size) == 1 * GiB