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)
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)
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)
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)