def delete_mount_info_from_fstab(self, lv_name): lv_vg = self.get_lv_vg(lv_name)['lv_vg'] cmd = "sed -i '/\/dev\/mapper\/{0}-{1}/d' /etc/fstab".format( lv_vg, lv_name) proc = ShellCmd.execute_cmd(cmd) delete_mount_info_from_fstab = 0 if not proc.returncode: delete_mount_info_from_fstab = 1 return {'delete_mount_info_from_fstab': delete_mount_info_from_fstab}
def write_mount_info_to_fstab(self, lv_name, directory): lv_vg = self.get_lv_vg(lv_name)['lv_vg'] mount_info = "/dev/mapper/{0}-{1} {2} ext3 defaults 0 0".\ format(lv_vg, lv_name, directory) cmd = 'echo {0} >> /etc/fstab'.format(mount_info) proc = ShellCmd.execute_cmd(cmd) write_mount_dir_to_fstab = 0 if not proc.returncode: write_mount_dir_to_fstab = 1 return {'write_mount_dir_to_fstab': write_mount_dir_to_fstab}
def mount_other_dir(self, lv_name, directory): lv_vg = self.get_lv_vg(lv_name)['lv_vg'] lv_path = '/dev/{0}/{1}'.format(lv_vg, lv_name) cmd = 'umount {0} && mkdir -p {1} && mount {0} {1}'.\ format(lv_path, directory) proc = ShellCmd.execute_cmd(cmd) lv_mount_dir = 0 if not proc.returncode: lv_mount_dir = 1 return {'lv_mount_dir': lv_mount_dir}
def expand_fs(self, lv_name): """ 扩展文件系统,需要耗费一些时间, 使用异步的方式处理。 """ lv_vg = self.get_lv_vg(lv_name)['lv_vg'] lv_path = '/dev/{0}/{1}'.format(lv_vg, lv_name) resize_2_fs = 0 cmd = 'resize2fs {0}'.format(lv_path) proc = ShellCmd.execute_cmd(cmd) if not proc.returncode: resize_2_fs = 1 return {'resize_2_fs': resize_2_fs}
def migrate_data_and_make_link(self, lv_name, data_source): """ 迁移大数据量的数据,需要花费很长的时间; 这里采用异步的方式处理。 """ mount_dir = self.lv_vg_capacity_usedcapacity_dir(lv_name)['mount_dir'] migrate_data_make_link = 0 if mount_dir: cmd = 'mv -f {0} {1}/ && ln -s {1}/elasticsearch {0}'.\ format(data_source, mount_dir) proc = ShellCmd.execute_cmd(cmd) if not proc.returncode: migrate_data_make_link = 1 return {'migrate_data_make_link': migrate_data_make_link}
def lv_mount_dir(self, lv_name, directory): """ 对逻辑卷进行格式化操作,非常耗时;逻辑卷容量越大, 需要的时间越长。 此处,采用异步的方式处理。 """ lv_vg = self.get_lv_vg(lv_name)['lv_vg'] lv_path = '/dev/{0}/{1}'.format(lv_vg, lv_name) cmd = "mkfs -t ext3 {0} && " \ "mkdir -p {1} && " \ "mount {0} {1}".format(lv_path, directory) proc = ShellCmd.execute_cmd(cmd) lv_mount_dir = 0 if not proc.returncode: lv_mount_dir = 1 return {'lv_mount_dir': lv_mount_dir}