Ejemplo n.º 1
0
 def _destroy_cache(self):
     dm = Dmsetup(root_helper=self.root_helper)
     cache_name = self._cache_name
     cache_table = dm.get_table(cache_name)
     ssd_dev = self.flashcache.get_ssd_dev(cache_table)
     dm.remove_table(cache_name)
     self.flashcache.destroy(ssd_dev)
Ejemplo n.º 2
0
 def _destroy_cache(self):
     dm = Dmsetup(root_helper=self.root_helper)
     cache_name = self._cache_name
     cache_table = dm.get_table(cache_name)
     ssd_dev = self.flashcache.get_ssd_dev(cache_table)
     dm.remove_table(cache_name)
     self.flashcache.destroy(ssd_dev)
Ejemplo n.º 3
0
    def delete_group(self):
        hdd_group = LinearTable(self.group_name)
        assert hdd_group.existed, "Group %s dose NOT exist..." % self.group_name
        dm = Dmsetup()
        #TODO: check for wether busy
        for disk in hdd_group.disks:
            if disk.mapper != 'error':
                cached_name = self._cached_disk_name(disk.dev)
                dm.remove_table(cached_name)

        fc = Flashcache()
        cache_name = self._cache_name()
        cache_table = dm.get_table(cache_name)
        ssd_dev = fc.get_ssd_dev(cache_table)
        dm.remove_table(cache_name)
        fc.destroy(ssd_dev)

        dm.remove_table(self._ssd_name())
        dm.remove_table(self.group_name)
Ejemplo n.º 4
0
    def delete_group(self):
        hdd_group = LinearTable(self.group_name, root_helper=self.root_helper)
        assert hdd_group.existed, "Group %s dose NOT exist..." % self.group_name
        dm = Dmsetup(root_helper=self.root_helper)
        #TODO: check for wether busy
        for disk in hdd_group.disks:
            if disk.mapper != 'error':
                cached_name = self._cached_disk_name(disk.dev)
                dm.remove_table(cached_name)

        fc = Flashcache(root_helper=self.root_helper)
        cache_name = self._cache_name()
        cache_table = dm.get_table(cache_name)
        ssd_dev = fc.get_ssd_dev(cache_table)
        dm.remove_table(cache_name)
        fc.destroy(ssd_dev)

        dm.remove_table(self._ssd_name())
        dm.remove_table(self.group_name)
Ejemplo n.º 5
0
    def rm_disk(self, disk_path):
        if os.path.islink(disk_path):
            disk_path = os.path.realpath(disk_path)
        hdd_group = LinearTable(self.group_name, root_helper=self.root_helper)
        assert hdd_group.existed, "Group %s dose NOT exist..." % self.group_name
        disk = hdd_group.find_disk(disk_path)

        dm = Dmsetup(root_helper=self.root_helper)
        cached_name = self._cached_disk_name(disk.dev)

        cache_name = self._cache_name()
        cache_dev = dm.mapdev_prefix + cache_name
        cache_table = dm.get_table(cache_name)
        fc = Flashcache(root_helper=self.root_helper)
        block_size = fc.get_block_size(cache_table)
        start_blk, offset_blk = utils.sector_offset2block_offset(disk.start, disk.size, block_size)
        fc.invalid(cache_dev, start_blk, offset_blk)

        dm.remove_table(cached_name)
        hdd_group.remove_disk(disk)