「干货」redis面试题

「干货」redis面试题,第1张

Redis 的全称是:Remote DictionaryServer,本质上是一个 Key-Value 类型的内存数据库,很像

memcached,整个数据库统统加载在内存当中进行 *** 作,定期通过异步 *** 作把数据库数据 flush 到硬盘

上进行保存。

因为是纯内存 *** 作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写 *** 作,是已知性能最快的

Key-Value DB。

Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个 value 的最大限

制是 1GB,不像 memcached 只能保存 1MB 的数据,因此 Redis 可以用来实现很多有用的功能。

比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做高

性能的 tag 系统等等。

另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一 个功能加强版的

memcached 来用。 Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能

读写,因此 Redis 适合的场景主要局限在较小数据量的高性能 *** 作和运算上。

1memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型

2redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多

3redis 可以持久化其数据 redis 可以持久化其数据

String、List、Set、Sorted Set、hashes

内存。

1noeviction:返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。

2allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。

3volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存

放。

4allkeys-random: 回收随机的键使得新添加的数据有空间存放。

5volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。

6volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间

存放。

因为目前 Linux 版本已经相当稳定,而且用户量很大,无需开发 windows 版本,反而会带来兼容性等问

题。

512M

Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。

所以 redis 具有快速和数据持久化的特征,如果不将数据放在内存中,磁盘 I/O 速度为严重影响 redis 的

性能。

在内存越来越便宜的今天,redis 将会越来越受欢迎, 如果设置了最大使用的内存,则数据已有记录数达

到内存限值后不能继续插入新值。

1codis 2目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在节点数量改变情况下,旧节点

数据可恢复到新 hash 节点。

redis cluster30 自带的集群,特点在于他的分布式算法不是一致性 hash,而是 hash 槽的概念,以及自

身支持节点设置从节点。具体看官方文档介绍。

3在业务代码层实现,起几个毫无关联的 redis 实例,在代码层,对 key 进行 hash 计算,然后去对应的

redis 实例 *** 作数据。这种方式对 hash 层代码要求比较高,考虑部分包括,节点失效后的替代算法方

案,数据震荡后的自动脚本恢复,实例的监控,等等。

有 A,B,C 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了,那么整个集群就会以为缺少

5501-11000 这个范围的槽而不可用。

redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

(1)会话缓存(Session Cache)

最常用的一种使用 Redis 的情景是会话缓存(sessioncache),用 Redis 缓存会话比其他存储(如

Memcached)的优势在于:Redis 提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的

购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?

幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用 Redis 来缓存会话的文档。甚至广为

人知的商业平台 Magento 也提供 Redis 的插件。

(2)全页缓存(FPC)

除基本的会话 token 之外,Redis 还提供很简便的 FPC 平台。回到一致性问题,即使重启了 Redis 实

例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似 PHP 本地

FPC。

再次以 Magento 为例,Magento 提供一个插件来使用 Redis 作为全页缓存后端。

此外,对 WordPress 的用户来说,Pantheon 有一个非常好的插件 wp-redis,这个插件能帮助你以最快

速度加载你曾浏览过的页面。

(3)队列

Reids 在内存存储引擎领域的一大优点是提供 list 和 set *** 作,这使得 Redis 能作为一个很好的消息队列

平台来使用。Redis 作为队列使用的 *** 作,就类似于本地程序语言(如 Python)对 list 的 push/pop

*** 作。

如果你快速的在 Google 中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的

就是利用 Redis 创建非常好的后端工具,以满足各种队列需求。例如,Celery 有一个后台就是使用

Redis 作为 broker,你可以从这里去查看。

(4)排行榜/计数器 Redis 在内存中对数字进行递增或递减的 *** 作实现的非常好。集合(Set)和有序集合(SortedSet)也使

得我们在执行这些 *** 作的时候变的非常简单,Redis 只是正好提供了这两种数据结构。

所以,我们要从排序集合中获取到排名最靠前的 10 个用户–我们称之为“user_scores”,我们只需要像

下面一样执行即可:

当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执

行:

ZRANGE user_scores 0 10 WITHSCORES

Agora Games 就是一个很好的例子,用 Ruby 实现的,它的排行榜就是使用 Redis 来存储数据的,你可

以在这里看到。

立聊天系统!

Redisson、Jedis、lettuce 等等,官方推荐使用 Redisson。

Redisson 是一个高级的分布式协调 Redis 客服端,能帮助用户在分布式环境中轻松实现一些 Java 的对

象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap,

List, ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock,

ReadWriteLock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog)。

Jedis 是 Redis 的 Java 实现的客户端,其 API 提供了比较全面的 Redis 命令的支持;

Redisson 实现了分布式和可扩展的 Java 数据结构,和 Jedis 相比,功能较为简单,不支持字符串 *** 作,

Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通

过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分 hash 槽。

为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型,

每个节点都会有 N-1 个复制品

Redis 并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写 *** 作。

异步复制

16384 个

Redis 集群目前无法做数据库选择,默认在 0 数据库。

一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应,这样就可以将多个命令发送到服务

器,而不用等待回复,最后在一个步骤中读取该答复。

这就是管道(pipelining),是一种几十年来广泛使用的技术。例如许多 POP3 协议已经实现支持这个功

能,大大加快了从服务器下载新邮件的过程。

事务是一个单独的隔离 *** 作:事务中的所有命令都会序列化、按顺序地执行,事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

事务是一个原子 *** 作:事务中的命令要么全部被执行,要么全部都不执行。

MULTI、EXEC、DISCARD、WATCH

EXPIRE 和 PERSIST 命令

尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。

比如你的 web 系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面。

一个客户端运行了新的命令,添加了新的数据。Redi 检查内存使用情况,如果大于 maxmemory 的限制, 则根据设定好的策略进行回收。一个新的命令被执行,等等。

所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。

如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。

咱们来看上面那张图,现在某个客户端要加锁。如果该客户端面对的是一个 redis cluster 集 群,他首先会根据 hash 节点选择一台机器。这里注意,仅仅只是选择一台机器!这点很关 键!紧接着,就会发送一段 lua 脚本到 redis 上,那段 lua 脚本如下所示:

为啥要用 lua 脚本呢?因为一大坨复杂的业务逻辑,可以通过封装在 lua 脚本中发送给 redis, 保证这段复杂业务逻辑执行的原子性。

那么,这段 lua 脚本是什么意思呢?这里 KEYS[1]代表的是你加锁的那个 key,比如说:RLoc

k lock = redissongetLock("myLock");这里你自己设置了加锁的那个锁 key 就是“myLock”。

ARGV[1]代表的就是锁 key 的默认生存时间,默认 30 秒。ARGV[2]代表的是加锁的客户端的 I D,类似于下面这样:8743c9c0-0795-4907-87fd-6c719a6b4586:1

给大家解释一下,第一段 if 判断语句,就是用“exists myLock”命令判断一下,如果你要加锁 的那个锁 key 不存在的话,你就进行加锁。如何加锁呢?很简单,用下面的命令:hset myLoc k 8743c9c0-0795-4907-87fd-6c719a6b4586:1 1,通过这个命令设置一个 hash 数据结构,这行 命令执行后,会出现一个类似下面的数据结构:

上述就代表“8743c9c0-0795-4907-87fd-6c719a6b4586:1”这个客户端对“myLock”这个锁 key 完 成了加锁。接着会执行“pexpire myLock 30000”命令,设置 myLock 这个锁 key 的生存时间 是 30 秒。好了,到此为止,ok,加锁完成了。

那么在这个时候,如果客户端 2 来尝试加锁,执行了同样的一段 lua 脚本,会咋样呢?很简 单,第一个 if 判断会执行“exists myLock”,发现 myLock 这个锁 key 已经存在了。接着第二 个 if 判断,判断一下,myLock 锁 key 的 hash 数据结构中,是否包含客户端 2 的 ID,但是明 显不是的,因为那里包含的是客户端 1 的 ID。

所以,客户端 2 会获取到 pttl myLock 返回的一个数字,这个数字代表了 myLock 这个锁 key 的剩余生存时间。比如还剩 15000 毫秒的生存时间。此时客户端 2 会进入一个 while 循环,不 停的尝试加锁。

客户端 1 加锁的锁 key 默认生存时间才 30 秒,如果超过了 30 秒,客户端 1 还想一直持有这把 锁,怎么办呢?

简单!只要客户端 1 一旦加锁成功,就会启动一个 watch dog 看门狗,他是一个后台线程,会 每隔 10 秒检查一下,如果客户端 1 还持有锁 key,那么就会不断的延长锁 key 的生存时间。

31可重入加锁机制

那如果客户端 1 都已经持有了这把锁了,结果可重入的加锁会怎么样呢?比如下面这种代码:

这时我们来分析一下上面那段 lua 脚本。第一个 if 判断肯定不成立,“exists myLock”会显示锁 key 已经存在了。第二个 if 判断会成立,因为 myLock 的 hash 数据结构中包含的那个 ID,就 是客户端 1 的那个 ID,也就是“8743c9c0-0795-4907-87fd-6c719a6b4586:1” 此时就会执行可重入加锁的逻辑,他会用:

incrby myLock 8743c9c0-0795-4907-87fd-6c71a6b4586:1 1 ,通过这个命令,对客户端 1 的加锁次数,累加 1。此时 myLock 数据结构变为下面这样:

大家看到了吧,那个 myLock 的 hash 数据结构中的那个客户端 ID,就对应着加锁的次数

如果执行 lockunlock(),就可以释放分布式锁,此时的业务逻辑也是非常简单的。其实说白 了,就是每次都对 myLock 数据结构中的那个加锁次数减 1。如果发现加锁次数是 0 了,说明 这个客户端已经不再持有锁了,此时就会用:“del myLock”命令,从 redis 里删除这个 key。 然后呢,另外的客户端 2 就可以尝试完成加锁了。这就是所谓的分布式锁的开源 Redisson 框 架的实现机制。

一般我们在生产系统中,可以用 Redisson 框架提供的这个类库来基于 redis 进行分布式锁的加 锁与释放锁。

其实上面那种方案最大的问题,就是如果你对某个 redis master 实例,写入了 myLock 这种锁 key 的 value,此时会异步复制给对应的 master slave 实例。但是这个过程中一旦发生 redis m aster 宕机,主备切换,redis slave 变为了 redis master。

接着就会导致,客户端 2 来尝试加锁的时候,在新的 redis master 上完成了加锁,而客户端 1 也以为自己成功加了锁。此时就会导致多个客户端对一个分布式锁完成了加锁。这时系统在业 务语义上一定会出现问题,导致各种脏数据的产生。

所以这个就是 redis cluster,或者是 redis master-slave 架构的主从异步复制导致的 redis 分布 式锁的最大缺陷:在 redis master 实例宕机的时候,可能导致多个客户端同时完成加锁。

先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了释放。

如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样?

set 指令有非常复杂的参数,这个应该是可以同时把 setnx 和 expire 合成一条指令来用的!

缓存穿透

一般的缓存系统,都是按照 key 去缓存查询,如果不存在对应的 value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的 key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。

如何避免?

1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该 key 对应的数据 insert 了之后清理缓存。

2:对一定不存在的 key 进行过滤。可以把所有的可能存在的 key 放到一个大的 Bitmap 中,查询时通过该 bitmap 过滤。

缓存雪崩

当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。

如何避免?

1:在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个 key 只允许一个线程查询数据和写缓存,其他线程等待。

2:做二级缓存,A1 为原始缓存,A2 为拷贝缓存,A1 失效时,可以访问 A2,A1 缓存失效时间设置为短期,A2 设置为长期

3:不同的 key,设置不同的过期时间,让缓存失效的时间点尽量均匀

第一步:CloudStack数据库的重新初始化

1)、停止CloudStack服务。service cloud-management stop

2)、到mysql里查询select uuid from storage_pool; 删除存储的SR。

[root@aa ~]# mysql -u root -ptcloud

mysql> use cloud;

Database changed

mysql> select uuid from storage_pool;

+————————————–+

| uuid |

+————————————–+

| 6550eb15-daed-363e-be38-7e76bcd973ec |

| 7abfabe4-7081-3b1e-8ab3-4dcbc9633636 |

| db8002d3-1c41-383c-bab3-a561b9583547 |

+————————————–+

3 rows in set (000 sec)

3)、删除CloudStack数据库,drop database cloud; drop database cloud_usage;

[root@aa ~]# mysql -u root -ptcloud

Welcome to the MySQL monitor Commands end with ; or \g

Your MySQL connection id is 11958

Server version: 5077 Source distribution

Type ‘help;’ or ‘\h’ for help Type ‘\c’ to clear the buffer

mysql> drop database cloud; drop database cloud_usage;

4)、重新部署CloudStack数据库 cloud-setup-databases cloud:password@localhost –deploy-as=root:password

[root@aa ~]# cloud-setup-databases cloud:password@localhost –deploy-as=root:password

Testing specified deployment credentials on server localhost:3306

Setting up user credentials in:

-> /etc/cloud/management/dbproperties … done

Applying file /usr/share/cloud/setup/create-databasesql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-schemasql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-database-premiumsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-schema-premiumsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/server-setupsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/templatessql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-index-fksql to the database on server localhost:3306

5)、cloud-setup-management

[root@aa ~]# cloud-setup-management

Starting to configure ElasterStack Management Server:

Configure sudoers … [OK]

Configure Firewall … [OK]

Configure CloudStack Management Server …[OK]

ElasterStack Management Server setup is Done!

第二步:初始化主存储和二级存储

1)、删除主存储和二级存储中的所有文件

第三步:准备二级存储

1)、在管理节点上挂载二级储存NFS目录:/export/secondary。

# mkdir -p /mnt/secondary

# mount -t nfs 17216204111:/export/secondary /mnt/secondary/

2)、下载SystemVm文件

3)、解压SystemVm文件

#/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -f systemvmvhdbz2 -h xenserver -F

4)、完成以后,卸载二级储存

#umount /mnt/secondary/

第四步:重新安装主机上的Hypervistor。

如果要是不想重新安装主机上的Hypervistor,参考第一步的第2项,删除存储的Sr

行货手机都会贴有图上的进网许可证

这是行货手机的标志

百度搜索“电信设备进网管理”

进入网站按照提示验证手机进网许可证和手机串号

只要是行货手机在数据库中都会登记注册

1、形态特征不同:

北苍术头状花序生于茎梢顶端,基部叶状苞披针形,边缘为长栉齿状,比头状花稍短,总苞长杯状,总苞片7-8列,生有微毛,管状花,花冠白色。瘦果长形,密生银白色柔毛,冠毛羽状。根状茎肥大,呈结节状。

关苍术茎不分枝或分枝,无毛。基部茎叶花期枯萎脱落。侧裂片椭圆形、倒卵形、长倒卵形或倒披针形,全部叶质地薄,纸质,两面同色,绿色,无毛,边缘或裂片边缘针刺状缘毛或刺齿,状花序下部的叶几无柄。针刺状羽状全裂。总苞钟状,全部苞片顶端钝,小花,**或白色。

2、产地不同:北苍术主产于辽西,关苍术主产于辽东。

3、花果期不同:北苍术花期7-8月份,果期8-10月份。关苍术花果期8-10月。

扩展资料:

北苍术相关特性:

1、种子特性

北苍术种子的生理特性与茅苍术基本相同,属短命型,室温下贮藏,寿命只有6个月,隔年种子不能使用;低温保存可延长种子寿命,在0℃-4℃低温条件下贮藏1年,种子发芽率可保持在80%以上。

北苍术种子属低温萌发类型,最低萌发温度为5℃-8℃,最适温度为10℃-15℃,高于25℃种子萌发受到抑制,超过45℃种子几乎全部霉烂。由于苍术种子为低萌发类型,生产中秋播优于春播。

2、生育特性

种子萌发出土时为2枚真叶,下胚轴膨大,逐渐形成根茎,随着植株的生长,叶片增多增大,枯萎前1年生苗莲座状,根茎鲜重3-6克;2年生植株开始形成地上茎,根茎扁圆形,长2-28厘米,根茎上生长1-5个更新芽,鲜重10-15克;3年生植株开始抽薹开花,根茎增粗长,鲜重达25克左右。

参考资料来源:百度百科-北苍术

参考资料来源:百度百科-关苍术

定义

光谱库是由高光谱成像光谱仪在一定条件下测得的各类地物反射光谱数据的集合。

简单来说就是物体和该物体的光谱信息。

用处

在遥感有监督分类的过程中,需要已知目标的光谱数据,用于分类训练或者结果检验。这时候就需要地物光谱数据库来提供,光谱库越完善,分类精度越高。

可以简单的理解为分类的参考依据。

目前常用光谱库

(1)USGS顾客,是1993年美国地质勘探局USGS建立,波长范围02 ~ 30um。

(2)JPL光谱库,主要为矿物的光谱数据。最后按照小于45um,,45~125um,,125~500um 3 种粒度,分别建立了3 个光谱库JPL1,JPL2, JPL3,反映了粒度对光谱反射率的影响。

(3)JHU光谱库,是约翰霍普金斯大学提供了包含15 个子库的光谱库,针对不同的地物类型选用了不同的分光计,并且每种地物都给出了详细的文本介绍。

(4)ASTER 光谱库,是2000 年加利福尼亚技术研究所建立。光谱库的数据来源于USGS、JPL、JHU3 个光谱库,共计8 类,包含:矿物类(1348 种),岩石类(244 种),土壤类(58 种),月球类(17 种),陨石类(60 种),植被类(4 种),水/雪/冰(9 种)和人造材料(56 种)。

(5)中科院遥感所数据库,由1998 年中科院遥感所建立,共收集地物光谱数据5000 条,这是我国第一部系统的光谱库

许多人包括我得知这一消息马上的反应是:太实至名归了。Michael Stonebraker在数据库领域以多产而著称,“发明了许多几乎所有现代数据库系统所用的概念,创办了无数成功的数据库技术公司”的确是他几十年生涯很好的总结。

他的影响跨越学术界和产业界,很难有在世者能与之媲美。而且此前他已经斩获美国工程院院士、IEEE软件系统奖、冯诺依曼奖和第一届SIGMOD Edgar F Codd创新奖等多个重量级荣誉。

早在1970年代前期,Michael Stonebraker就在Edgar Codd的关系数据库论文启发下,组织伯克利的师生,开始开发最早的两个关系数据库之一Ingres(另一个是IBM System R),Ingres的基础上后来发展出Sybase和SQL Server两大主流数据库。Ingres在关系数据库的查询语言设计、查询处理、存取方法、并发控制和查询重写等技术上都有重大贡献。

1980年代他又开发了POSTGRES项目,目的是在关系数据库之上增加对更复杂的数据类型的支持,包括对象、地理数据、时间序列数据等。后来这个系统演变为开源的PostgreSQL,Greenplum、Aster Data、Netezza和Stonebraker自己创办的Ilustra(后被Informix收购)等多个商业公司和开源的产品都是基于PostgreSQL开发的。

1990年代,他启动了联邦数据库Mariposa,基于此创办了Cohera公司,后被PeopleSoft收购。Mariposa和稍早的XPRS(与Randy Katz、David Patterson和John Ousterhout诸位大牛合作)和Distributed Ingres两个项目开了一代分布式数据库风起之先。Shared Nothing架构这一重要概念也是那个时期提出来的,这已经成为如今大数据系统的基石之一。

第一步:CloudStack数据库的重新初始化

1)、停止CloudStack服务。service cloud-management stop

2)、到mysql里查询select uuid from storage_pool; 删除存储的SR。

[root@aa ~]# mysql -u root -ptcloud

mysql> use cloud;

Database changed

mysql> select uuid from storage_pool;

+————————————–+

| uuid |

+————————————–+

| 6550eb15-daed-363e-be38-7e76bcd973ec |

| 7abfabe4-7081-3b1e-8ab3-4dcbc9633636 |

| db8002d3-1c41-383c-bab3-a561b9583547 |

+————————————–+

3 rows in set (000 sec)

3)、删除CloudStack数据库,drop database cloud; drop database cloud_usage;

[root@aa ~]# mysql -u root -ptcloud

Welcome to the MySQL monitor Commands end with ; or \g

Your MySQL connection id is 11958

Server version: 5077 Source distribution

Type ‘help;’ or ‘\h’ for help Type ‘\c’ to clear the buffer

mysql> drop database cloud; drop database cloud_usage;

4)、重新部署CloudStack数据库 cloud-setup-databases cloud:password@localhost –deploy-as=root:password

[root@aa ~]# cloud-setup-databases cloud:password@localhost –deploy-as=root:password

Testing specified deployment credentials on server localhost:3306

Setting up user credentials in:

-> /etc/cloud/management/dbproperties … done

Applying file /usr/share/cloud/setup/create-databasesql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-schemasql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-database-premiumsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-schema-premiumsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/server-setupsql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/templatessql to the database on server localhost:3306

Applying file /usr/share/cloud/setup/create-index-fksql to the database on server localhost:3306

5)、cloud-setup-management

[root@aa ~]# cloud-setup-management

Starting to configure ElasterStack Management Server:

Configure sudoers … [OK]

Configure Firewall … [OK]

Configure CloudStack Management Server …[OK]

ElasterStack Management Server setup is Done!

第二步:初始化主存储和二级存储

1)、删除主存储和二级存储中的所有文件

第三步:准备二级存储

1)、在管理节点上挂载二级储存NFS目录:/export/secondary。

# mkdir -p /mnt/secondary

# mount -t nfs 17216204111:/export/secondary /mnt/secondary/

2)、下载SystemVm文件

3)、解压SystemVm文件

#/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -f systemvmvhdbz2 -h xenserver -F

4)、完成以后,卸载二级储存

#umount /mnt/secondary/

第四步:重新安装主机上的Hypervistor。

如果要是不想重新安装主机上的Hypervistor,参考第一步的第2项,删除存储的Sr。

以上就是关于「干货」redis面试题全部的内容,包括:「干货」redis面试题、如何初始化CloudStack测试环境、怎么区分vertu aster是否是山寨机等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9425182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存